在安卓KSOAP Web服务KSOAP、Web

2023-09-07 16:01:31 作者:" 一转身、一辈子。

我使用下面的code:

I am using the following code:

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.setOutputSoapObject(request);
            envelope.dotNet=true;           
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);  
            try
            {
                androidHttpTransport.call(SOAP_ACTION, envelope);              
                SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                Log.i("myApp", response.toString());  
                TextView tv = new TextView(this);
                tv.setText("message="+response.toString());
                setContentView(tv);                              
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }

在工作正常的web服务,但它显示了以下错误:

The webservice in working properly,but it shows following error:

W / System.err的(975):---内部异常堆栈跟踪的结尾---faultactor:'空'的细节:org.kxml2.kdom.Node@44f1adb8  W / System.err的(975):在org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:116)  W / System.err的(975):在org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)  W / System.err的(975):在org.ksoap2.transport.Transport.parseResponse(Transport.java:63)  W / System.err的(975):在org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)  W / System.err的(975):在com.redbus.SearchRoute.onCreate(SearchRoute.java:90)  W / System.err的(975):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)  W / System.err的(975):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)  W / System.err的(975):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)  W / System.err的(975):在android.app.ActivityThread.access $ 2300(ActivityThread.java:125)  W / System.err的(975):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)  W / System.err的(975):在android.os.Handler.dispatchMessage(Handler.java:99)  W / System.err的(975):在android.os.Looper.loop(Looper.java:123)  W / System.err的(975):在android.app.ActivityThread.main(ActivityThread.java:4627)  W / System.err的(975):在java.lang.reflect.Method.invokeNative(本机方法)  W / System.err的(975):在java.lang.reflect.Method.invoke(Method.java:521)  W / System.err的(975):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)  W / System.err的(975):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)  W / System.err的(975):在dalvik.system.NativeStart.main(本机方法)

W/System.err(975): --- End of inner exception stack trace ---' faultactor: 'null' detail: org.kxml2.kdom.Node@44f1adb8 W/System.err(975): at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:116) W/System.err(975): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137) W/System.err(975): at org.ksoap2.transport.Transport.parseResponse(Transport.java:63) W/System.err(975): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100) W/System.err(975): at com.redbus.SearchRoute.onCreate(SearchRoute.java:90) W/System.err(975): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) W/System.err(975): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) W/System.err(975): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) W/System.err(975): at android.app.ActivityThread.access$2300(ActivityThread.java:125) W/System.err(975): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) W/System.err(975): at android.os.Handler.dispatchMessage(Handler.java:99) W/System.err(975): at android.os.Looper.loop(Looper.java:123) W/System.err(975): at android.app.ActivityThread.main(ActivityThread.java:4627) W/System.err(975): at java.lang.reflect.Method.invokeNative(Native Method) W/System.err(975): at java.lang.reflect.Method.invoke(Method.java:521) W/System.err(975): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) W/System.err(975): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) W/System.err(975): at dalvik.system.NativeStart.main(Native Method)

推荐答案

这code适用于试试吧:)在URL中使用10.0.2.2不是10.0.2.1事业的仿真器正在使用此端口,并在请求.addProperty您必须指定方法名称,您在Web服务的前写的:我的方法是采取了串m,所以我的方法addProperty写(M,//这里的对象,你要发送)

This Code works for try it :) in the url use 10.0.2.2 not 10.0.2.1 cause the emulator is using this port and in the request.addProperty you must specify the method name as you wrote it in the Web Service ex : my method was taking a string m so I wrote in the addProperty("m","//here the object you want to send")

SoapObject request = new SoapObject("http://tempuri.org/", "GetCoursesInfos");
    request.addProperty("m","courses");

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet=true;
    envelope.setOutputSoapObject(request);


    HttpTransportSE http = new HttpTransportSE("http://10.0.2.2:2612/Service1.svc");//hint you

        http.call("http://tempuri.org/IService1/GetCoursesInfos", envelope);

        Object result= (Object)envelope.getResponse();
        message=result.toString();



    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.d("1", "first exe");
        txt.setText(e.getMessage());

    }