1

Android アプリから asmx Web サービスを呼び出すときに問題が発生しました。

次のコードを使用して、Android アプリから asmx Web サービスを呼び出しています。

                    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 に答える