web-dev-qa-db-fra.com

Changer le type de contenu des en-têtes avec wp_remote_post

Travailler avec les demandes d'API distantes avec WordPress. J'ai utilisé la fonction wp_remote_post() pour demander les données HTTP mais je ne parviens pas à mettre à jour les en-têtes Content-type J'utilise le code suivant

 wp_remote_post( $url, array(
    'method' => 'POST',
    'timeout' => 45,
    'redirection' => 5,
    'httpversion' => '1.0',
    'blocking' => true,
    'headers' => array("Content-type" => "application/x-www-form-urlencoded;charset=UTF-8"),
    'body' => array( 'username' => 'bob', 'password' => '1234xyz' ),
    'cookies' => array()
    )
);

Mais lorsque j'imprime, le type de contenu de la réponse est toujours text/html, mais le serveur requiert un type de contenu urlencoded. Comment je peux mettre à jour le type de contenu des en-têtes?

2
Mehar

Ainsi, vous définissez les en-têtes d'une demande à l'aide de wp_remote_post() et vous vous attendez à ce que des en-têtes soient utilisés dans la réponse. C'est ce que je comprends de vous:

When I print the response content-type is still "text/html"

Je pense que vous avez mal compris les en-têtes HTTP. En utilisant wp_remote_post(), vous faites une demande et vous pouvez définir les en-têtes de la demande en fonction de vos besoins, mais vous ne pouvez évidemment pas contrôler les en-têtes de la réponse.

Les en-têtes de la réponse dépendent absolument du serveur distant.

4
cybmeta