PHP curl請求介面並獲取資料 詳解

2021-08-27 18:15:20 字數 3403 閱讀 6820

最近因為呼叫ping++支付的原因,可是把我給難為到了,主要還是自己自我解決問題的能力不太強,下面試報錯資訊:

一般分為四步:

step1: curl_init()初始化

curl_init(【string $url】):引數可以為空,單獨初始化乙個curl資源,要是有引數,則代表curl_setopt()中的cutlopt_url選      項被設定成這個值,也可以手動使用curl_setopt()函式設定這個值,成功返回curl控制代碼,失敗返回false,

step2:curl_setopt()設定curl傳輸選項

boolcurl_setopt( resource$ch, int$option, mixed$value) //option 需要設定的curlopt_***選項;value為值

其中主要有幾個常用的選項設定:

curlopt_header: 啟用時會將標頭檔案資訊作為輸出流輸出; 一般為false

curlopt_returntranser:true時將curl_exec()獲取的資訊以字串返回,而不是直接輸出

curlopt_ssl_verifyhost : 設定了不做伺服器端的認證,那麼客戶端也不需要認證,為false

curlopt_post: true時指定傳送post請求,不設定預設為get方式

curlopt_postfields: 設定了post方式請求,那麼就要處理post請求的資料,,這個在使用curl_setopt()設定選項的時         候會多乙個引數,$data,它就是post傳送的引數

step3:curl_exec()執行curl回話

它是在初始化乙個curl回話後並全部選項被設定後呼叫

curl_exec($ch) //$ch是初始化的curl資源

step4:curl_close() 關閉資源

curl_close($ch) //關閉curl資源,並且釋放系統資源

下面試封好的方法,僅供參考使用

1.分開設定curl_setopt引數

$str = curl_exec($ch);//執行訪問,返回結果

curl_close($ch);//關閉curl,釋放資源

return $str;

}2.直接陣列的形式設定curl_setopt引數,使用curl_setopt_array()方法

private function _curlrequest($method, $absurl, $headers, $params)

else

$datatobesign .= parse_url($absurl, php_url_path);

if (count($params) > 0)

$requesttime = time();

} elseif ($method === 'post' || $method === 'put') else

$rawrequestbody = $params !== null ? json_encode($params) : '';

$opts[curlopt_postfields] = $rawrequestbody;

$datatobesign .= $rawrequestbody;

if ($this->_signopts !== null)

if (isset($this->_signopts['time']) && $this->_signopts['time'])

}} else

$absurl = util\util::utf8($absurl);

$opts[curlopt_url] = $absurl; //設定路徑,也可以在curl_init()初始化回話的時候

$opts[curlopt_returntransfer] = true; //true代表將curl_exec()獲取的資訊以字串返回,而不是直接輸出

$opts[curlopt_connecttimeout] = 30; //在嘗試連線時等待的秒數。設定為0,則無限等待

$opts[curlopt_timeout] = 80; //允許 curl 函式執行的最長秒數

$opts[curlopt_httpheader] = $headers; //設定 http 頭字段的陣列。格式: array('content-type: text/plain','content- length: 100')

$opts[curlopt_ssl_verifypeer] = false; //false禁止 curl 驗證對等證書

}

注意:在封裝的時候一定要考慮到post的方式,以及https協議的情況,乙個使用curlopt_post給curl_setopt()設定引數,另乙個使用curlopt_ssl_verifypeer給curl_setopt()設定引數

php curl請求介面並獲取資料

當我們在做php開發的時候,很多時候需要對介面進行測試,或者更方便的呼叫一些已有模組的介面,取到結果並進行後續操作,我們可以通過curl進行模擬提交post和get請求,來去實現這些功能。下面是對curl的post和get的封裝 php created by phpstorm.user thinkp...

php curl 介面請求

通過url獲取頁面資訊 param string url 位址 return string 返回頁面資訊 function get url url 模擬post提交 param string url 位址 param string data 提交的資料 return string 返回結果 func...

php CURL 請求頭和響應頭獲取

1.從curl中獲取響應頭 ocurl curl init 設定請求頭,有時候需要,有時候不用,看請求 是否有對應的要求 返回 response header,該選項非常重要,如果不為 true,只會獲得響應的正文 curl setopt ocurl,curlopt header,true 是否不需...