Можно ли несколько раз вызвать 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);
После того, что curl делает внутренне для запроса (методом, описанным в этом ответе на «Php – Debugging Curl» ), отвечает на вопрос: «Нет, нельзя использовать вызов CURLOPT_HTTPHEADER
с CURLOPT_HTTPHEADER
. Второй вызов перезапишет заголовки первого вызова.
Вместо этого функцию нужно вызывать один раз со всеми заголовками:
$headers = array( 'Content-type: application/xml', 'Authorization: gfhjui', ); curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);
Связанные (но разные) вопросы:
Другой тип формата:
$headers[] = 'Accept: application/json'; $headers[] = 'Content-Type: application/json'; $headers[] = 'Content-length: 0'; curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);