常用的幾種數據傳輸


平時的項目開發中,都會用到數據請求,一般都會用到Curl 和 stream流的方式發送http請求。

一、CURL

// curl請求  HTTPS 請求,編碼必須為 UTF-8
public function curl_post($url, $param, $post_file = false)
{

    $oCurl = curl_init();
    if (stripos($url, "https://") !== FALSE) {
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
    }
    $headers = array('content-type: application/x-www-form-urlencoded;charset=utf-8');
    curl_setopt($oCurl, CURLOPT_HTTPHEADER, $headers);

    curl_setopt($oCurl, CURLOPT_URL, $url);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($oCurl, CURLOPT_POST, true);
    curl_setopt($oCurl, CURLOPT_POSTFIELDS, json_encode($param));
    $sContent = curl_exec($oCurl);

    $aStatus  = curl_getinfo($oCurl);
    curl_close($oCurl);
    if (intval($aStatus["http_code"]) == 200) {
        return $sContent;
    } else {
        return false;
    }
}

 

二、stream數據流

    public function post2($url, $rawData){
        ini_set("user_agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); //偽造 user_agent 防止請求報錯
        $opts = array(
            'http' => array(
                'method'  => "POST",
                'header'  => "Content-type: application/json\r\nContent-length:" . strlen($rawData) . "\r\n",
                'content' => $rawData,
            ),"ssl" => [ "verify_peer"=>false, "verify_peer_name"=>false, ]
        );
        $context = stream_context_create($opts);
        $content = file_get_contents($url, false, $context);
        return $content;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM