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 回答