Intereting Posts
Предпочтительный формат видео в формате WordPress? Данные из ajax не обновляются после мета Импортировать шаблон заголовка из другой темы Ограничьте мои страницы публично Формат выходных данных даты выхода Buddypress Добавить содержимое в заголовок виджета в области администратора внутри виджета? Проблема с отображением HTML-виджета Как удалить Gravatar из столбца пользователя Идентификаторы дочерних категорий групп, основанные на их родительской категории Должен ли я использовать add_filter для функций в function.php темы? Сортировка событий по названию места – сортировка сообщений, заданных соответствующими идентификаторами сообщений Наличие пользовательского пула сообщений, который сталкивается с существующим каталогом Настройка фокальной точки для чувствительного заголовка Добавление действия в функцию, вызываемую add_filter Перехват WP_MAIL для просмотра содержимого

Проводка XML-запроса с использованием HTTP API

Я пытаюсь работать с API, который ожидает строку XML в теле сообщения. Кроме того, в документах для API указывается:

Пожалуйста, опубликуйте текст mime-типа / xml с XML в теле сообщения

Я хочу использовать API-интерфейс WordPress для выполнения этой работы, но у меня возникают некоторые проблемы. До сих пор у меня есть код вроде следующего, который, кажется, терпит неудачу.

$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 в нужное место?

На удивление сложно найти примеры HTTP-API WordPress с использованием запросов XML.

Solutions Collecting From Web of "Проводка XML-запроса с использованием HTTP API"

Я понял. API-интерфейс 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( 'Content-Type' => 'text/xml' ), 'body' => array('postdata' => $xml, 'postfield' => 'value'), 'sslverify' => false ) ); 

Опять же … это было просто неправильное понимание API, с которым я работал, а не API HTTP, предоставленный моим WordPress.

Изменить: данные POST должны быть представлены как массив, в соответствии с http://codex.wordpress.org/Function_API/wp_remote_post . Массив будет преобразован в строку, подобную этой: key1 = val1 & key2 = val2 & …