php 使用 curl 傳送 post 資料

2021-06-27 03:55:44 字數 1714 閱讀 2927

作為第三方開發商,經常會需要呼叫平台介面,遠端呼叫,就要用到curl,其實質就是叫呼叫的方法與用到的引數以http post的方式傳送至平台伺服器。

簡單的例子:

$url = 'http://';  //呼叫介面的平台服務位址

$post_string = array('a'=>'b');  

$ch = curl_init();

curl_setopt($ch, curlopt_url, $url);

curl_setopt($ch, curlopt_postfields, $post_string);

curl_setopt($ch, curlopt_returntransfer, true);

curl_setopt($ch, curlopt_connecttimeout, 10);

curl_setopt($ch, curlopt_timeout, 30);

$result = curl_exec($ch);  

curl_close($ch);

其實curlopt_postfields的這個設定中,亦可以直接傳送陣列的,但是這樣做的後果是嚴重增加的請求的時間,耗時大約在2秒多,同樣的操作用socket方式操作則正常,在毫秒級別。

若將此處:curl_setopt($ch, curlopt_postfields, $post_string);

修改為:curl_setopt($ch, curlopt_postfields, http_build_query($post_data));

則執行時間恢復正常

ps:http_build_query — 生成 url-encode 之後的請求字串

說明string http_build_query ( array $formdata [, string $numeric_prefix ] )

使用給出的關聯(或下標)陣列生成乙個經過 url-encode 的請求字串。引數 formdata 可以是陣列或包含屬性的物件。乙個 formdata 陣列可以是簡單的一維結構,也可以是由陣列組成的陣列(其依次可以包含其它陣列)。如果在基礎陣列中使用了數字下標同時給出了 numeric_prefix 引數,此引數值將會作為基礎陣列中的數字下標元素的字首。這是為了讓 php 或其它 cgi 程式在稍後對資料進行解碼時獲取合法的變數名。

note:

用 arg_separator.output 來分隔引數。

example #1 http_build_query() 使用示例

example #2 http_build_query() 使用數字下標的元素

php 使用 curl 傳送 post 資料

作為第三方開發商,經常會需要呼叫平台介面,遠端呼叫,就要用到curl,其實質就是叫呼叫的方法與用到的引數以httppost的方式傳送至平台伺服器。簡單的例子 url http 呼叫介面的平台服務位址 post string array a b ch curl init curl setopt ch,...

php 使用 curl 傳送 post 資料

作為第三方開發商,經常會需要呼叫平台介面,遠端呼叫,就要用到curl,其實質就是叫呼叫的方法與用到的引數以http post的方式傳送至平台伺服器。簡單的例子 呼叫介面的平台服務位址 post string array a b ch curl init curl setopt ch,curlopt ...

php使用curl傳送post連線

php使用curl傳送post請求,要使用curl,首先要開啟curl,開啟方式在php安裝目錄下的php.ini配置檔案下找到 extension php curl.dll 把前面的分號去掉即可 當然,前提是php安裝目錄下有php curl.dll檔案 如何檢視是否開啟curl 在專案下新建乙個...