3

PHP で cURL を使用していくつかのヘッダーを送信しようとしていますが、ヘッダーが送信されません。

コードは次のとおりです。

$header = array('Referer: xxx',
        'Origin: xxx',
        'Content-Type: application/x-www-form-urlencoded',
        'Connection: keep-alive',
        'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3',
        'Cache-Control: max-age=0',
        'Except:');

そしてこれを使用して:

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$t = curl_exec($ch);

$sentHeaders = curl_getinfo($ch);

var_dump($sentHeaders);

ダンプには、Origin、content-type、referrer などが表示されませんでした... POST を送信しようとしていますが、送信されません。

私が間違っていることは何ですか?

編集済み: POST が送信されなくなりました:

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_URL, $url);
$t = curl_exec($ch);
4

2 に答える 2

1

このオプションを追加して、getinfo呼び出しのリクエスト ヘッダーを表示します。

curl_setopt($ch, CURLINFO_HEADER_OUT, true);
于 2012-11-24T02:53:43.563 に答える
0

POSTの問題について:必ず使用してhttp_build_query()ください。したがって、コードに含める必要があります。

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data) );

それが役に立てば幸い

于 2015-07-14T16:02:14.933 に答える