PHP cURL不会发送适当的标头

时间:2012-11-24 02:49:30

标签: php curl header

我正在尝试使用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,内容类型,引用者和什么......我正在尝试发送一个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);

2 个答案:

答案 0 :(得分:1)

添加此选项可查看getinfo电话中的请求标头:

curl_setopt($ch, CURLINFO_HEADER_OUT, true);

答案 1 :(得分:0)

关于你的POST问题: 一定要使用curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data) ); 。所以它需要在你的代码中:

if(_connection.State == System.Data.ConnectionState.Open) _connection.Close();
_connection.Dispose();

希望有所帮助