簡體   English   中英

安裝了 php-xml 擴展的 Wordpress XML-RPC POST 返回 32700 錯誤

[英]Wordpress XML-RPC POST returning 32700 error with php-xml extension installed

我正在使用 HTTPie 向我的本地 Wordpress 安裝發出POST請求,目的是檢查 XML-RPC 是否可用並啟用。

http --verify=no POST https://crmpicco.localhost/xmlrpc.php data="<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wp.getUsersBlogs</methodName><params><param><value>admin</value></param><param><value>pass</value></param></params></methodCall>"

這將返回200 ,但是響應有一個錯誤代碼:

HTTP/1.1 200 OK
Connection: close
Content-Length: 403
Content-Type: text/xml; charset=UTF-8
Date: Fri, 08 Mar 2019 03:18:43 GMT
Server: Apache/2.4.35 (Unix) OpenSSL/1.0.2p PHP/7.2.11
X-Powered-By: PHP/7.2.11

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value><int>-32700</int></value>
        </member>
        <member>
          <name>faultString</name>
          <value><string>parse error. not well formed</string></value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

其他有這個問題的人指出php-xml擴展不可用,但是當我執行php -m | grep -i xml php -m | grep -i xml它顯示為已安裝:

libxml
SimpleXML
xml
xmlreader
xmlrpc
xmlwriter

我錯過了什么?

為此,我不得不回退到使用 cURL。 我不確定我在 HTTPie 上到底做錯了什么,或者它在這方面是否有限制,但是它與 cURL 一起使用:

curl -k -d '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wp.getUsersBlogs</methodName><params><param><value>user</value></param><param><value>pass</value></param></params></methodCall>' https://crmpicco.localhost/xmlrpc.php

我有同樣的問題,對 wordpress API 的調用適用於 phpxmlrpc-4.0.0,但有一些關於不推薦使用的函數的警告,所以我升級到 phpxmlrpc-4.4.1,然后得到這個“解析錯誤。格式不正確”錯誤

更新:我剛剛找到了解決方法:在文件“lib/xmlrpc.inc”中,更改編碼設置:

從:

PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding = 'ISO-8859-1';

到:

PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding = 'UTF-8';

另一個節點是:設置

$xml_rpc_client->request_charset_encoding="UTF-8"

只會讓我的文字內容亂七八糟

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM