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

2022-08-30 08:08:44

我可以多次调用curl_setopt来设置多个标头吗?CURLOPT_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);

答案 1

按照 curl 在内部对请求执行的操作(通过“Php - 调试 Curl”的答案中概述的方法)回答了以下问题:

不可以,不能多次使用调用,每次都传递一个标头,以便设置多个标头。curl_setoptCURLOPT_HTTPHEADER

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

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

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

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


答案 2

其他格式类型 :

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

curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);

推荐