2012-07-31 128 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>