【发布时间】:2013-02-05 08:16:12
【问题描述】:
我正在尝试使用一些基本身份验证(通过发送加密标头)发出 CURL 请求。但是,当我尝试设置 "Host: _" 标头时,远程服务器会响应:
错误请求:您的浏览器发送了此服务器无法理解的请求。
这是进行 CURL 调用的代码。请注意,只要我注释掉 $http_header 变量中的 "Host: url" 标头,它就会起作用。但是,它作为身份验证过程的一部分在目标服务器上使用,所以我不能简单地删除它。
$curl = curl_init();
$opt = array(
CURLOPT_URL=>$url,
CURLOPT_RETURNTRANSFER=>1,
CURLOPT_HTTPHEADER=>$http_header,
CURLOPT_POST=>1,
CURLOPT_POSTFIELDS=>$data_params,
CURLOPT_CONNECTTIMEOUT=>5, // Timeout to 5 seconds
);
curl_setopt_array($curl, $opt);
// $output contains the output string
$output = curl_exec($curl);
// it closes the session
curl_close($curl);
$http_header(关联数组)的内容:
array
0 => string 'Host: http://localhost/work/myproject'
1 => string 'Content-Type: multipart/form-data'
2 => string 'X-Authorization: Basicauth Z2xZjA2YzJhMzIxYTI1ZmIzZTgxYQ=='
【问题讨论】:
标签: php authentication curl header