Est-ce que je peux appeler curl_setopt
avec CURLOPT_HTTPHEADER
plusieurs fois pour définir plusieurs en-têtes?
$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);
Après ce que curl fait en interne pour la requête (via la méthode décrite dans cette réponse à "," Php - Debugging Curl " ) répond la question: non, il n'est pas possible d'utiliser le curl_setopt
appeler avec CURLOPT_HTTPHEADER
. Le deuxième appel écrasera les en-têtes du premier appel.
Au lieu de cela, la fonction doit être appelée une fois avec tous les en-têtes:
$headers = array(
'Content-type: application/xml',
'Authorization: gfhjui',
);
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);
Les questions connexes (mais différentes) sont:
Autre type de format:
$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/json';
$headers[] = 'Content-length: 0';
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);