2012-07-31 35 views
7

Tengo un servidor Magento que tiene varios métodos expuestos a través de la API. Estoy haciendo prototipos de varios módulos del lado del cliente para llamar a esta API. Esto ha sido exitoso hasta ahora.solicitud xml-rpc usando curl?

Acabo de empezar a usar curl para empujar xml. Sorprendentemente, ni siquiera puedo pasar el inicio de sesión de la API. Esto es lo que estoy haciendo (el método de "inicio de sesión" toma dos cadenas, el nombre de usuario y la contraseña).

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

contenido del archivo xmlrpc

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

Esto es lo que me sale:

<?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> 

lo que quiere decir que el error?

+0

algo más de información que podría ayudar: Sé que el nombre del método es correcto ya que he hecho solicitudes contra ese nombre de método antes. También intenté agregar una línea de codificación de caracteres (codificación = "UTF-8") en el archivo xmlrpc, pero eso no ayudó. – Vish

Respuesta

10

Y, como siempre, mi consulta para principiantes terminó siendo algo simple.

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

en lugar de

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

me dio un buen, nueva variable de sesión que indica que he estado conectado!

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