私は、投稿の本文にXML文字列を期待するAPIを使って作業しようとしています。さらに、APIのドキュメントには以下のものが指定されています。
投稿の本文にXMLを付けてmime-type text/xmlで投稿してください
これを機能させるためにWordPress HTTP APIを使用したいのですが、いくつか問題があります。これまでのところ、失敗しているように思われる次のようなコードがあります。
$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
)
);
私の質問は、私はMIMEタイプを適切に設定しているか、そしてXMLを正しい場所に送信しているか、ということです。
XMLリクエストを利用するWordPress HTTP APIの例を見つけるのは驚くほど大変です。
私はそれを考え出した。 WordPress HTTP APIがその仕事をしていました。私の問題は私が働いていたAPIにありました。私は自分のコードを以下のように修正しました。
$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
)
);
繰り返しますが、これは私が作業していたAPIの単なる誤解であり、私のWordPressが提供していたHTTP APIではありませんでした。
編集:POSTデータは http://codex.wordpress.org/Function_API/wp_remote_post に従って配列として指定する必要があります。配列は次のような文字列に変換されます。これ:key1 = val1&key2 = val2&...