使用JAVA中的ksoap库,通过筛选器从magento检索特定的客户列表集
我正在使用SOAP API从magento服务器获取数据。使用JAVA中的ksoap库,通过筛选器从magento检索特定的客户列表集,java,magento,ksoap,Java,Magento,Ksoap,我正在使用SOAP API从magento服务器获取数据。 我想获取客户列表,我想通过过滤器来检索特定的客户列表。我正在使用hashMap,但它引发了一个序列化异常 我的代码是 {request = new SoapObject(NAMESPACE, "customerCustomerInfo"); request.addProperty("sessionId", sessionId); HashMap<String, Object>
我想获取客户列表,我想通过过滤器来检索特定的客户列表。我正在使用hashMap,但它引发了一个序列化异常 我的代码是
{request = new SoapObject(NAMESPACE, "customerCustomerInfo");
request.addProperty("sessionId", sessionId);
HashMap<String, Object> filter=new HashMap<String, Object>();
filter.put("customer_id", condition);
request.addProperty("filters", filter);}
{request=newsoapobject(名称空间,“customerCustomerInfo”);
request.addProperty(“sessionId”,sessionId);
HashMap筛选器=新建HashMap();
filter.put(“客户id”,条件);
request.addProperty(“过滤器”,过滤器);}
我还使用了jsonobject,simple Arraylist,但它引发了相同的异常。您可以尝试将“HashMap”更改为“HashTable”,并将“MarshallHashTable”注册到信封中
比如:
SoapSerializationEnvelope env=新的SoapSerializationEnvelope(SoapEnvelope.VER11);
androidHttpTransport=新的HttpTransportSE(URL);
androidHttpTransport.debug=true;
(新的marshallhashtable()).register(env);
//滤器
Hashtable filter=新的Hashtable();
filter.put(“客户id”、“1”);
request.addProperty(“过滤器”,过滤器);
我从你那里得到这个建议
“使用参数数组创建请求”位于
@Ricardo的答案是正确的,它帮助了我,但我为那些仍然困惑的人发布了完整的代码。下面的代码将为我获取特定客户的订单
SoapSerializationEnvelope env = new SoapSerializationEnvelope(SoapEnvelope.VER11);
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
Hashtable hashtable = new Hashtable();
hashtable.put("customer_id", 17);
SoapObject request = new SoapObject(NAMESPACE, "salesOrderList");
request.addProperty("filters", hashtable);
request.addProperty("sessionId", sessionId);
env.setOutputSoapObject(request);
HTttpTransportSE transportSE = new HttpTransportSE(URL);
transportSE.debug=true;
(new MarshalHashtable()).register(env);
你好,里卡多,谢谢你的回复。事实上,我在谷歌上搜索了很多,终于找到了u提供的参数数组链接。它帮助我成功发送请求。:)
SoapSerializationEnvelope env = new SoapSerializationEnvelope(SoapEnvelope.VER11);
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
Hashtable hashtable = new Hashtable();
hashtable.put("customer_id", 17);
SoapObject request = new SoapObject(NAMESPACE, "salesOrderList");
request.addProperty("filters", hashtable);
request.addProperty("sessionId", sessionId);
env.setOutputSoapObject(request);
HTttpTransportSE transportSE = new HttpTransportSE(URL);
transportSE.debug=true;
(new MarshalHashtable()).register(env);