0
下面是一個沒有CURLOPT_HTTPHEADER
的例子,它工作正常。PHP Curl - 知道內容類型
<?php
$URL = "http://someurl.info";
$data = 'x_test_request=0&x_version=3.1&x_delim_data=true&x_relay_response=false';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 1800);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
?>
Curl會自動檢測我們發佈的數據類型,並自動計算字符串長度嗎? 或者我們應該總是指定Both?
還是很大程度上取決於目的地的規則和期望?
爲了安全起見,我通常添加的頭信息是這樣的:
<?php
$contentlen = strlen(trim($data));
$headersARR = array(
"Content-type: application/x-www-form-urlencoded",
"Content-length: ".$contentlen,
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headersARR);
?>
我讀http://us1.php.net/curl_setopt,但沒有注意到在默認的內容類型參數的任何細節。
這基本上是我期望聽到的,但不得不問 – coffeemonitor