web-dev-qa-db-fra.com

Envoi d'une requête XML à l'aide de l'API HTTP

J'essaie de travailler avec une API qui attend une chaîne XML dans le corps de l'article. De plus, la documentation de l'API spécifie:

Merci de poster avec le type mime text/xml avec le code XML dans le corps du message.

Je veux utiliser l'API HTTP WordPress pour que cela fonctionne, mais je rencontre quelques problèmes. Jusqu'à présent, j'ai un code comme celui-ci qui semble échouer.

$url = 'https://www.testurl.com';
$xml = <<<TESTED XML HERE>>>;
$response = wp_remote_post( 
    $url, 
    array(
        'method' => 'POST',
        'timeout' => 45,
        'redirection' => 5,
        'httpversion' => '1.0',
        'headers' => array(
            'mime-type' => 'text/xml'
        ),
        'body' => array('xml' => $xml),
        'sslverify' => false
    )
);

Ma question est la suivante: dois-je définir correctement le type mime et envoyer le code XML au bon endroit?

Il est étonnamment difficile de trouver des exemples d’API HTTP WordPress utilisant des requêtes XML.

2
tollmanz

Je l'ai compris. L'API HTTP WordPress faisait son travail; mon problème était avec l'API avec laquelle je travaillais. Je viens de modifier mon code comme:

$url = 'https://www.testurl.com';
$xml = <<<TESTED XML HERE>>>;
$response = wp_remote_post( 
    $url, 
    array(
        'method' => 'POST',
        'timeout' => 45,
        'redirection' => 5,
        'httpversion' => '1.0',
        'headers' => array(
            'Content-Type' => 'text/xml'
        ),
        'body' => array('postdata' => $xml, 'postfield' => 'value'),
        'sslverify' => false
    )
);

Encore une fois ... c'était juste un malentendu de l'API avec laquelle je travaillais, pas l'API HTTP fourni avec mon WordPress.

Edit: POST les données doivent être fournies sous forme de tableau, conformément à http://codex.wordpress.org/Function_API/wp_remote_post Le tableau sera transformé en une chaîne comme celle-ci: key1 = val1 & key2 = val2 & ...

4
tollmanz