CURL模擬post請求

2021-07-05 04:06:45 字數 1037 閱讀 9748

開發專案需要用curl模擬post提交乙個多維陣列資料,請求另外乙個專案的乙個介面;傳遞的引數中,有乙個引數的值為陣列,而且很可能是乙個很大的多維陣列。但是當我使用普通的curl post**提交,會報錯誤,錯誤提示如下:

php notice:  array to string conversion 

根據翻譯,大概意思是:php注意:陣列字串轉換

這裡是乙個curl配置項

curl_setopt($ch, curlopt_url, "$url");

curl_setopt($ch, curlopt_returntransfer, 1);

curl_setopt($ch, curlopt_header, 0);

curl_setopt($ch,curlopt_timeout,3); //

定義超時3秒鐘

// post資料

curl_setopt($ch, curlopt_post, 1);

//把post的變數加上curl_setopt($ch, curlopt_postfields, $data);//

執行並獲取url位址的內容

$output = curl_exec($ch);

$errorcode = curl_errno($ch);

//釋放curl控制代碼

curl_close($ch);

1、使用http_build_query()函式,使陣列生成乙個經過 url-encode 的請求字串,那麼在介面那邊就可以做利用parse_str()函式反向處理,從而獲得完整陣列;

2、使用json_encode()函式,生成輕量的json格式資料,方便傳輸。但是到了介面那邊使用$_post接受post過來的資料就會出現問題,解決方法就是需要使用      file_get_contents( "php://input" )來獲取post過來的資料,必須是post方式必須是post方式提交的資料,而且提交的不能是multipart/form-data型別的資料,然後再使用json_decode()函式解析資料。

curl 構造 模擬 post請求

curl setopt ch,curlopt postfields,data data是陣列格式 curl setopt ch,curlopt postfields,data data 是json格式 curl setopt ch,curlopt postfields,url data data 是...

curl模擬post請求提交

php view plain copy header content type text html charset utf 8 function curlpost url data method curl setopt ch curlopt returntransfer,true tmpinfo c...

curl模擬post請求提交

header content type text html charset utf 8 function curlpost url,data,method curl setopt ch,curlopt returntransfer,true tmpinfo curl exec ch 6.執行 if ...