我是Android开发新手,从Android应用程序调用asmx web服务时遇到了一些问题。
我使用以下代码从我的Android应用程序调用asmx webservices。
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
SoapObject request=new SoapObject(NAMESPACE,Method_Name);
PropertyInfo p=new PropertyInfo();
p.setName("Item");
p.setValue(itm);
p.setType(itm.getClass());
request.addProperty(p);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope (SoapEnvelope.VER12);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
envelope.addMapping(NAMESPACE, "ItemById",new Item().getClass());
HttpTransportSE androidTSE=new HttpTransportSE(URL);
androidTSE.call(Soap_Action, envelope);
SoapObject response=(SoapObject) envelope.getResponse();
itm.ItemId=Integer.parseInt(response.getProperty(0).toString());
itm.Itemname=response.getProperty(1).toString();
Log.i("ItemName",itm.Itemname);
tv.setText(itm.Itemname);
当我调用该服务时,我将Itemname设为0.但应用程序在我的dotNET应用程序中运行得非常愉快。
可能是什么问题?如何知道连接是否已建立?
答案 0 :(得分:1)
您替换以下方法
HttpTransportSE androidTSE=new HttpTransportSE(URL);
到
AndroidHttpTransport androidTSE= new AndroidHttpTransport(URL, Timeout);
androidTSE.debug = true;
androidTSE.call(SOAP_ACTION, envelope);