我想通过一些基本认证(通过发送加密的标头)进行CURL请求。但是,当我尝试设置"Host: _"
标头时,远程服务器响应:无法设置“主机:”带CURL请求的标头
错误的请求:您的浏览器发送了此服务器无法理解的请求。
这是使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=='