1

我是 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 应用程序中运行良好。

可能是什么问题?如何知道连接是否已建立?

4

1 回答 1

1

你替换下面的方法

 HttpTransportSE androidTSE=new HttpTransportSE(URL);

进入

 AndroidHttpTransport androidTSE= new AndroidHttpTransport(URL, Timeout);
 androidTSE.debug = true;
 androidTSE.call(SOAP_ACTION, envelope);
于 2013-01-23T09:30:53.417 回答