在安卓KSOAP Web服务 [英] KSOAP webservices in android

查看:125
本文介绍了在安卓KSOAP Web服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用下面的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());

    }

这篇关于在安卓KSOAP Web服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆