2012-07-31 130 views
7

我有一個Magento服務器,通過API公開了各種方法。我正在構建各種客戶端模塊的原型來調用此API。迄今已取得成功。使用curl的xml-rpc請求?

我剛開始使用curl來推送xml。令人驚訝的是,我甚至無法通過API登錄。這就是我在做的事情(「登錄」方法需要兩個字符串,用戶名和密碼)。

curl --data-urlencode @xmlrpc http://domain/api/xmlrpc 

內容文件XMLRPC

<?xml version="1.0"?> 
<methodCall> 
<methodName>login</methodName> 
<params> 
<param> 
<value>apiUser</value> 
</param> 
<param> 
<value>apiKey</value> 
</param> 
</params> 
</methodCall> 

這是我所得到的:

<?xml version="1.0" encoding="UTF-8"?> 
<methodResponse> 
<fault> 
<value> 
<struct> 
<member> 
<name>faultCode</name> 
<value><int>631</int></value> 
</member> 
<member> 
<name>faultString</name> 
<value><string>Failed to parse request</string></value> 
</member> 
</struct> 
</value> 
</fault> 
</methodResponse> 

是什麼錯誤呢?

+0

一些更多的信息可能會有所幫助:我知道methodname是正確的,因爲我之前已經提出了針對該methodname的請求。我也嘗試在xmlrpc文件中添加一個字符編碼行(encoding =「UTF-8」),但這沒有幫助。 – Vish 2012-07-31 18:31:40

回答

10

而且,和往常一樣,我的初學者查詢最終只是簡單的。

curl --data @xmlrpc http://domain/api/xmlrpc 

代替

curl --data-urlencode @xmlrpc http://domain/api/xmlrpc 

給了我一個很好的,新的會話變量,指示我在被記錄!

<methodResponse><params><param><value><string>eaab9ac0780f6bc9ba867804</string></value></param></params></methodResponse>