2013-01-13 60 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)的狀態碼。