2013-01-13 39 views
0

当我尝试在wordpress中使用xmlrpc上传数据时,出现错误。代码用于正常工作,但突然之间这个错误开始出现。我没有改变代码中的任何东西。我得到一个错误(-32300):传输错误 - HTTP状态码不是200

错误(-32300):传输错误 - HTTP状态代码不是200

另外,我知道我的脚本工作,因为谷歌浏览器返回的GET请求一个“OK”的状态。 php.ini有128mb的内存分配。

这里是用来制造后

/** 
    * Make Posts using the XMLRPC classes 
    */ 
    function makePosts() { 
     $data_set = $this->getMovieLinks(); 

     $xml_client = new XMLRPClientWordPress(); 

     foreach ($data_set as $key) { 
      echo '<pre>'; 
      echo 'This is title movie about to be added ======== : ' . $key['title'];  
      echo '</pre>'; 

      //new_post($title,$summary,$category,$image_url,$internal_links) 
     if ($xml_client->new_post($key['title'], $key['summary'], $key['category'], $key['image'], $key['internal_links'])) { 
      $status=1; 
     } else { 
     $status=0; 
     } 

      if (isset($status)) { 
       echo '  ====== ADDED'; 
      } else { 
       echo '  ====== ERROR ADDING'; 
      } 
     } 
    } // Function makePosts endes here 

回答

0

你可以做一些事情来调试错误代码。

  1. 看看服务器日志,也许他们包括问题的真正原因。
  2. 寻找你的php.ini中的“memory_limit”。尝试更高的数字,看看这是否是问题。
  3. 尝试一次停用一个插件,可能是一个插件可能导致错误。
+0

我做了停用所有插件,但我仍然得到相同的错误。我使用共享主机,因此日志没有那么有用。我应该增加多少内存限制。到目前为止,内存限制问题的用户将其内存设置为10mb,默认情况下我将其设置为128mb – tinyhook

0

我收到了同样的错误,最后我发现原因是我在.htaccess(XML-PRC服务器端)启用了这样的代码;我被阻止了。

order deny,allow 
deny from all 
allow from 211.111.0.0/16 

主办的 “http://example.com/xmlrpc.php” 被拦截后脚本IP源服务器。

你应该:

  1. 添加XML-RPC客户端脚本IP到XML-PRC服务器端;甚至是同一个站点上的客户端和服务器。
  2. 或者干脆去掉“从所有拒绝”从.htaccess
0

我有同样的错误,但我解决它:

我输入http://www.example.com/xmlrpc.php但好的是http://example.com/xmlrpc.php因为如果它具有的“www”前缀它与居留制鳕鱼

+0

所有HTTP响应都有一个状态码。你的意思是特定的状态码吗? –

+0

是的,它重定向了303. :) –

0

重定向如果以上解决方案的工作:

确保你不被白名单上的托管服务提供商。我们的客户使用wp-engine,发布媒体项目时我们遇到了这个问题。

在外部网络上发出同样的请求后,我们得到了一个200(OK)的状态码。