我可以多次使用 CURLOPT_HTTPHEADER 调用 curl_setopt 来设置多个标头吗?

新手上路,请多包涵

我可以多次调用 curl_setoptCURLOPT_HTTPHEADER 来设置多个标头吗?

 $url = 'http://www.example.com/';

$curlHandle = curl_init($url);
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Content-type: application/xml'));
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Authorization: gfhjui'));

$execResult = curl_exec($curlHandle);

原文由 hakre 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

按照 curl 在内部为请求所做的事情(通过 “Php - Debugging Curl” 这个答案中 概述的方法)回答问题:

不,不可能将 curl_setopt(PHP)CURLOPT_HTTPHEADER 多次使用,每次都传递一个标头,以便设置多个标头。

第二次调用将覆盖先前调用(例如第一次调用)的标头。

相反,该函数需要使用所有标头调用一次:

 $headers = [
    'Content-type: application/xml',
    'Authorization: gfhjui',
];
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);

相关(但不同)的问题是:

原文由 hakre 发布,翻译遵循 CC BY-SA 4.0 许可协议

其他类型的格式:

 $headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/json';
$headers[] = 'Content-length: 0';

curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);

原文由 Pascual Muñoz 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题