2016-11-11 7 views
2
$postcontent = array(
     'post_type' => 'post', 
     'post_status' => $post_status, 
     'post_title' => $post_title, 
     'post_name' => $post_title, 
     'post_content' => $post_content, 

     'post_thumbnail' => $image_returnInfo['id'] 
    // 'terms_names'=> array('category' => $category_battery), 

    ); 

$res = $client -> query('wp.newPost',1, $usr, $pwd, $postcontent); 
$postID = $client->getResponse(); 

print_r($client); 

В то время как я пытался вставить пост из XmlRpc WordPress апи я получил ошибку 32300. Как я могу решить эту проблему?XMLRPC ошибка запроса объект 32300 транспортной ошибка

У меня получился следующий результат.

IXR_Client Object 
(
    [server] => battery.kis-com.ch 
    [port] => 80 
    [path] => /battery-station/xmlrpc.php 
    [useragent] => The Incutio XML-RPC PHP Library 
    [response] => 
    [message] => 
    [debug] => 
    [timeout] => 15 
    [headers] => Array 
     (
      [Host] => battery.kis-com.ch 
      [Content-Type] => text/xml 
      [User-Agent] => The Incutio XML-RPC PHP Library 
      [Content-Length] => 781 
     ) 

    [error] => IXR_Error Object 
     (
      [code] => -32300 
      [message] => transport error - HTTP status code was not 200 
     ) 

) 
+2

О, наконец, я нашел точную проблему. на самом деле это была проблема с проблемой протокола https:. код, который я использовал, не работает с https. Я использовал следующий код для https. –

ответ

1

Вот билет поддержки на wordpress, который я нашел. https://mu.wordpress.org/forums/topic/5997

Оказалось, я был из памяти PHP Фатальная ошибка: Разрешены памяти размером 8388608 байт исчерпаны Изменение php.ini, чтобы позволить 10M, кажется, чтобы исправить это. Пожалуйста, попробуйте.

2

Пожалуйста, перейдите по этой ссылке (https://codex.wordpress.org/XML-RPC_WordPress_API). Изменение порта может помочь, потому что все порты принимают значение по умолчанию 80. Изменение номера порта на 81 или другие номера может помочь.

1

На самом деле проблема связана с https protocal. Я использовал следующий код для https.

include_once(ABSPATH . WPINC . '/class-IXR.php'); 
include_once(ABSPATH . WPINC . '/class-wp-http-ixr-client.php'); 


$usr = '****'; 
$pwd = '*****'; 
$xmlrpc = 'https://test.ch/xmlrpc.php'; 
//echo $xmlrpc; 
//echo ABSPATH . WPINC . '/class-IXR.php' ; 

// $client = new IXR_Client($xmlrpc); 
$client = new WP_HTTP_IXR_CLIENT($xmlrpc); 

    $postcontent = array(
     'post_type' => 'post', 
     // 'post_status' => 'test', 
     'post_title' => 'test', 
     'post_content' => 'test' 


    ); 

$res = $client -> query('wp.newPost',1, $usr, $pwd, $postcontent); 
$postID = $client->getResponse();