Curl 中用於POST 請求的CURLOPT_POSTFIELDS
當使用curl 執行POST 請求並指定CURLOPT_POSTCURLOPT :適當的格式。例如,考慮發布兩個欄位「first」和「last」:
「first=John&last=Smith」
字串格式
If傳送字串作為POST 資料時,應對其進行URL 編碼以確保正確的字元編碼。下面的程式碼示範了這一點:
$data = urlencode("first=John&last=Smith");
陣列格式
但是,如果POST資料是數組,則必須遵循「key => value」格式:
$data = [ 'first' => 'John', 'last' => 'Smith' ];
在這種情況下,curl 會自動將Content-Type標頭設定為"multipart/form-data"。
Content-Type 標頭
建議明確設定 Content-Type 標頭以獲得更好的相容性。例如,要將其設定為「application/json」:
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
使用http_build_query()
或者,不手動建立查詢,而是使用PHP 的http_build_query ()函數可以使用:
$query = http_build_query($data, '', '&'); curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
函數處理URL 編碼和正確的 key=value 格式無縫銜接。
以上是如何在 cURL POST 請求中正確設定 CURLOPT_POSTFIELDS 格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!