Intereting Posts
Выходной цикл для возврата функции? Расписание мероприятия каждую вторую четверть месяца доступность объекта, созданного в плагине, из заголовка проблема с подключением addaction вызывает перенаправление Пользовательская запись в блоге в Genesis Sample Child Theme Получить идентификатор сообщения в области редактирования / редактирования страницы Недостаток использования фильтров и крючков несколько раз Определить структуру Permalink по почте и странице Создание цикла «posts page» на основе самой страницы Запросить сообщения из идентификатора терминов детской таксономии Ошибка при просмотре папки в формате Multisite при загрузке Как я могу экспортировать сообщения с избранными изображениями, не загружая их Добавить настраиваемое поле в область администрирования без использования метабокса Создание виджета с несколькими настраиваемыми полями Как исправить проблему «глобалы», чтобы избежать отклоненной темы?

Неожиданная ошибка HTTP произошла во время запроса API

Я просто сделал чистую установку WordPress. Но у меня проблема, когда я устанавливаю или использую WordPress API. Так что пришлите мне знак

Неожиданная ошибка HTTP возникла во время запроса API.

Странно то, что я повсюду посмотрел. И решения не работают для меня porponen WordPress 3.2.1 и не знают, как решить проблему

Solutions Collecting From Web of "Неожиданная ошибка HTTP произошла во время запроса API"

Используйте следующую функцию для отладки запроса HTTP API, вы узнаете фактическую причину отказа HTTP-запроса API.

Вставьте следующий код в функцию function.php вашей темы.

function dump_http_response( $response, $type, $transport, $args, $url ) { if ( is_admin() && $type == "response" ) { echo '<span style="color: #f00;">'; var_dump( $response ); echo '</span>'; } } add_action( 'http_api_debug', 'dump_http_response', 1, 5 ); 

Этот сценарий дает вам общий обзор того, какие файловые системы разрешены / установлены на вашем сервере. Первые три метода – это предпочтительные методы WordPress, и WordPress может быть вынужден использовать один из них, определив FS_METHOD в wp-config.php .

Скопируйте код в файл, загрузите файл на свой сервер, проверьте, какие методы файловой системы разрешены / установлены, и удалите файл как можно скорее.

 <?php $yes = '<span style="color:green; font-weight:bold">:)</span>'; $no = '<span style="color:red; font-weight:bold">:(</span>'; $items = array(); $items['fopen'][0] = 'Opening urls via fopen (for FS_METHOD "direct")'; $items['fopen'][1] = ( TRUE == ini_get( 'allow_url_fopen' ) ) ? ' is allowed '.$yes : ' is not allowed '.$no; $items['ssh2'][0] = 'SSH2 (for FS_METHOD "ssh")'; $items['ssh2'][1] = ( TRUE === extension_loaded( 'ssh2' ) ) ? ' is installed '.$yes : ' is not installed '.$no; $items['ftp'][0] = 'FTP (for FS_METHOD "ftpext")'; $items['ftp'][1] = ( TRUE === extension_loaded( 'ftp' ) ) ? ' is installed '.$yes : ' is not installed '.$no; $items['sockets'][0] = 'Sockets (for FS_METHOD "ftpsockets")'; $items['sockets'][1] = ( TRUE === extension_loaded( 'sockets' ) ) ? ' are installed '.$yes : ' are not installed '.$no; $items['curl'][0] = 'Curl'; $items['curl'][1] = ( TRUE === extension_loaded( 'curl' ) ) ? ' is installed '.$yes : ' is not installed '.$no; echo '<html>'; echo '<ol>'; foreach ( $items as $item ) { printf( '<li>%s%s</li>', $item[0], $item[1] ); } echo '</ol>'; echo '</html>'; 

Вы можете попытаться заставить WordPress использовать метод файловой системы, определив его в вашем wp-config.php , например, чтобы использовать расширение php ftp вместо fopen :

 if ( ! defined( 'FS_METHOD' ) define( 'FS_METHOD', 'ftpext' ); 

Это может быть полезно, если у вас возникли проблемы с использованием метода файловой системы и вы хотите использовать другой.

«WordPress API» довольно смутно (WP получил несколько API-интерфейсов). Но из вашей ошибки кажется, что это проблема HTTP API. Существует несколько возможных препятствий:

Проблемы с сертификатами SSL

Если у вас возникла проблема с вашим SSL-сертификатом (необходимо, когда сервер является субдоменом сайта, указанным в сертификате SSL, использование подстановочного сертификата устраняет необходимость в этом).

Как отмечалось в комментариях, проблема также может заключаться в том, что на вашем сервере установлены устаревшие или отсутствующие корневые сертификаты SSL CA.

Запросить проблемы (WP HTTP API не отвечает 200/OK )

Вы думаете, что у вас нет доступных cURL а fsocketopen не сработал?

Сначала вы хотите проверить, работает ли ответ. Для этой задачи вы можете использовать две службы (где обе говорят вам несколько разные детали):

  • HTTPstatus.nl
  • RedBot

Затем, как отметил в своем ответе @HameedullahKhan, есть фильтр отладки для WP HTTP API. Этот фильтр работает в абсолютной последней точке любого запроса, прямо перед тем, как вернуть его разработчику.

 <?php /** Plugin Name: (#28871) Debug WP HTTP API response */ add_action( 'http_api_debug', 'wpse28871_debug_request', 999, 5 ); function wpse28871_debug_request( $response, $type, $class, $args, $url ) { printf( '<pre>ResponseData: %s', is_wp_error( $response ) ? $response->get_error_code().' '.$response->get_error_message() : $response ); printf( '<br />ResponseType: %s', $type ); printf( '<br />ResponseClass: %s', $class ); printf( '<br />ResponseArgs: %s', $args ); printf( '<br />ResponseURl: %s</pre>', $url ); # @TODO Uncomment to exit when debugging AJAX requests # exit(); } 

Если приведенное выше не дает вам никаких подробностей, вы можете попытаться отладить объект cURL сразу после его создания и прямо перед тем, как он будет запущен. Этот способ довольно неизвестен, но он обладает огромными полномочиями при объединении его с над плагином: он сообщает вам, есть ли у запроса проблема с аргументами cURL или если он не работает позже, довольно быстро сужая круг возможных проблем.

 <?php /* Plugin Name: (#28871) Debug WP HTTP API cURL arguments */ add_action( 'http_api_curl', 'wpse28871_curl_debug' ); function wpse28871_curl_debug( $handle ) { printf( '<pre>%s</pre>' ,var_export( curl_getinfo( $handle, CURLINFO_HEADER_OUT ), true ) ) ); }