2013-02-28 8 views
47

Czy mogę wielokrotnie dzwonić pod numer curl_setopt za pomocą CURLOPT_HTTPHEADER, aby ustawić wiele nagłówków?Czy mogę wielokrotnie wywoływać curl_setopt z CURLOPT_HTTPHEADER, aby ustawić wiele nagłówków?

$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); 
+0

Dlaczego chcesz wywołać funkcję wiele razy, gdy możesz zrobić to tylko raz i uzyskać ten sam wynik? Po prostu dajesz więcej narzutów i możesz zamoczyć kod z deklaracjami nagłówków w każdym miejscu. – Tudor

Odpowiedz

74

Po co robi curl wewnętrznie na życzenie (za pomocą metody opisanej w this answer to "Php - Debugging Curl") odpowiada na pytanie: Nie, to nie jest możliwe korzystanie z połączenia curl_setopt z CURLOPT_HTTPHEADER. Drugie połączenie spowoduje nadpisanie nagłówków pierwszego połączenia.

Zamiast funkcja musi być wywoływana raz ze wszystkimi nagłówkami:

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

powiązanych (ale różnych) pytania:

2

Inne pe formatu:

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

curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers); 
Powiązane problemy