使用curl发送XML-RPC请求?

9
我有一个Magento服务器,通过API公开了各种方法。我正在原型化各种客户端模块来调用此API,目前为止这一切都成功了。
我刚刚开始使用curl发送xml数据。令人惊讶的是,我甚至无法通过API登录验证。这是我正在做的事情('login'方法需要两个字符串:用户名和密码)。
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>

这个错误是什么意思?

一些更多的信息可能会有所帮助:我知道方法名称是正确的,因为我之前已经对该方法名发出了请求。我还尝试将字符编码行(encoding="UTF-8")添加到xmlrpc文件中,但这并没有帮助到我。 - Vish
1个回答

15

而且,像往常一样,我的初学者查询最终涉及到了一些简单的事情。

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接