0

以下は なしの例でCURLOPT_HTTPHEADER、正常に動作します。

<?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を読みましたが、デフォルトの content-type パラメータの詳細に気づいていません。

4

1 に答える 1