我一直在开发一个magento商店的Android应用程序...我已成功检索产品列表,产品详细信息等...然后我尝试检索下面定义的其他产品属性...不幸的是,它返回产品详细信息不包含我要求的其他属性...我已经提到了以下问题
我试过的代码是在下面添加......
private void getProductDetails(final String productID, String type)
{
SoapObject request = new SoapObject(NAMESPACE,"catalogProductInfo");
request.addProperty("sessionId", sessionID);
request.addProperty("productId", productID);
request.addProperty("attributes", "color");
request.addProperty("attributes", "size");
GetSoapObject getSoapObject= new GetSoapObject(request) {
@Override
public void receiveData(Object object) {
String price = null;
productAttributes= null;
String specialpricestring = null;
productAttributes= new ArrayList<>();
SoapObject soapObject= (SoapObject) object;
String status= soapObject.getProperty("status").toString();
if(status.equals("1")) {
String productName = soapObject.getProperty("name").toString();
price = soapObject.getProperty("price").toString();
String description = soapObject.getProperty("description").toString();
};
getSoapObject.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "");
}
这是我的GetSoapObject类
package com.test.myapplication;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import java.util.Objects;
public abstract class GetSoapObject extends AsyncTask implements CallbackReciever {
private SoapObject request;
private SoapSerializationEnvelope env;
private HttpTransportSE androidHttpTransport;
private static final String URL = "http://192.168.57.1:8888/Magento/index.php/api/v2_soap";
public GetSoapObject(SoapObject request)
{
this.request= request;
}
public abstract void receiveData(Object object);
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Object doInBackground(Object[] params) {
Object productList = null;
try {
env = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
env.setOutputSoapObject(request);
androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call("", env);
productList = env.getResponse();
}
catch (SoapFault fault) {
Log.v("TAG", "soapfault = " + fault.getMessage());
}
catch (Exception e) {
e.printStackTrace();
Log.d("Product Details Error: ", e.toString());
}
return productList;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
receiveData(o);
}
}
返回的SoapObject
catalogProductReturnEntity{product_id=297; sku=wsd000; set=13; type=simple; categories=ArrayOfString{item=13; }; websites=ArrayOfString{item=1; }; created_at=2013-03-05T13:48:15+04:00; updated_at=2014-03-08 12:24:58; type_id=simple; name=Essex Pencil Skirt; description=Knee length skirt. Sits on natural waist. Fitted through the hip. Exposed waist belt loops. Hidden zip and hook and eye closure in back. Full lining. Wool/cotton/polyester. Machine wash.; short_description=A classic pencil skirt that feels refreshingly modern. Crafted from our lighweight refined wool, the Jane skirt is an essential piece for on-the-go professionals.; weight=1.0000; status=1; url_key=essex-pencil-skirt; url_path=essex-pencil-skirt.html; visibility=1; category_ids=ArrayOfString{item=13; }; has_options=0; price=185.0000; tax_class_id=2; tier_price=catalogProductTierPriceEntityArray{}; options_container=container1; }
注意: 我在localhost中使用它,我使用的是android ksoap2库