Android KSOAP2调用.net webservice

文章标签: android,android-ksoap2
2015-1-5 9:52:07     人阅读    


我现在在android中通过Ksoap2调用webservice出现了一些问题,我在一个服务器上通过 .net发布了一个webservice ,我在android app中通过  KSOAP2 (ksoap2-j2se-full-2.1.2) 调用,运行后出现   org.ksoap2.serialization.SoapPrimitive .错误,如何处理?

下面是我调用的代码:

package projects.ksoap2sample;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.app.*;
import android.os.*;
import android.widget.TextView;

public class ksoap2sample extends Activity {
    /** activity 初始化的时候创建如下数据*/
    private static final String SOAP_ACTION = "http://tempuri.org/HelloWorld";
    private static final String METHOD_NAME = "HelloWorld";
    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String URL = "http://192.168.1.19/TestWeb/WebService.asmx";
    TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv=(TextView)findViewById(R.id.text1);

        try {
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

            //request.addProperty("prop1", "myprop");

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

            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

            androidHttpTransport.call(SOAP_ACTION, envelope);

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

            String[] results = (String[])  result;
            tv.setText( ""+results[0]);
        }
        catch (Exception e) {
            tv.setText(e.getMessage());
        }
    }
}

处理方法

面的错误比较简单,需要把结果通过如下方式处理
你的错误代码 code:

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


正确的代码:

SoapObject result=(SoapObject)envelope.getResponse();

//获得数据

String resultData=result.getProperty(0).toString();


// 0 是第一条数据


原文地址:http://www.itmmd.com/201501/439.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

BroadcastReceiver 使用AlertDialog后 app奔溃了   上一篇
下一篇  android 通知消息Android Notification: add typeface for title and content
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!