2014-12-27 3 views
1

Я успешно подключил мое приложение Android к серверу magento через xmlrpc api. Кроме того, я успешно получил «catalogcategory.tree», используя xmlrpc api. Теперь я хочу, чтобы получить изображения продукта из их «ид продукта», следовательно, следующий код, который я написал в андроидеmagento product нет ответа от xmlrpc api в android

Map map = new HashMap(); 
     map.put("product_id", 12446); 
     map.put("product_id", 12445); 
     Object[] productdetails1=new Object [] {map}; 
     Object medialist = null; 
     Object param1[]=new Object[]{productdetails1}; 
     Object param[]=new Object[]{CS_CONSTANTS.session_id,"catalog_product_attribute_media.list",param1}; 
     try { 
     medialist=client.callEx("call", param); 
     Log.i("Out Put of Adding", medialist.toString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 

    } 
    Log.e("HERE","is array : " + String.valueOf(medialist.getClass().isArray())+"\n" 
    +"class : " + medialist.getClass().toString()+"\n" 
    +"hashCode : " + String.valueOf(medialist.hashCode())); 

Ниже приводится исключение

//12-27 15:11:04.936: W/System.err(22977): com.cs.xmlrpc.libraries.XMLRPCFault: XMLRPC Fault: Product not exists. [code 101] 
//12-27 15:11:04.936: W/System.err(22977): at com.cs.xmlrpc.libraries.XMLRPCClient.callEx(XMLRPCClient.java:226) 

Ниже соответствующего код SOAPV1, который работает OK на сервере

$client = new SoapClient('http://magentohost/api/soap/?wsdl'); 
$session = $client->login('apiUser', 'apiKey'); 
$result = $client->call($session, 'catalog_product_attribute_media.list', '12446'); 
var_dump($result); 

у меня есть крест проверил идентификаторы ввода продукта, все они являются действительными и существуют на моем Magento сервере

ответ

0

Попробуйте это ... Это работает для меня:

String product_id="325"; 

Object[] array= (Object[]) client.callEx("call",new Object[] session_id,"product_media.list",new Object[]{product_id}}); 

for (Object s:array) { 
    hashMap1=(HashMap)s; 

    Log.i("ImageURL:",hashMap1.get("url").toString()); 
    //[types, exclude, position, url, label, file] 
}