android调用 .net webService

本文详细介绍了一个名为PDAActivity的Android应用程序组件如何通过异步任务调用WebService进行数据查询。文章展示了具体的代码实现,包括如何设置SOAP请求、处理响应以及在主线程中显示结果。
摘要由CSDN通过智能技术生成

 

package com.rockcheck.mes;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.HttpTransportSE;


public class PDAActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pda_home);
    }

    //点击按钮事件调用异步
    public void webQuery (View view){
        new DownloadTask().execute();
    }

    //
    public Object web (){
        Object result=null;
        String asmx_url="http://xxx/Service1.asmx";
        String nameSpace="http://tempuri.org/";
        String methodName="xxx";

        //指定webservice的命名空间和调用方法
        SoapObject soapObject = new SoapObject(nameSpace,methodName);
        //设置需要调用的webServices接口需要传入的参数,参数1 string,参数2 object
        soapObject.addProperty("aaa",null);
        //调用webService方法的SOAP请求信息,并指定SOAP的版本 ,这个版本 根据 asdl文件中是1.1还是1.2协议来指定的. 一般VER11或者VER12都可以,以前还有VER10
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
        //创建的SoapObject对象设为SoapSerializationEnvelope的传出SOAP消息体
        envelope.bodyOut = soapObject;
        //设置是否调用的是dotNet开发的webService
        envelope.dotNet = true;
        //创建HttpTransportSE对象,该对象用于调用webService操作
        HttpTransportSE transportSE = new HttpTransportSE(asmx_url);
        //使用调试功能
        transportSE.debug = true;
       try {
           //调用操作对象call方法,将SoapSerializationEnvelope作为参数调用远程webService
           transportSE.call(nameSpace+methodName,envelope);
           result = (Object) envelope.bodyIn;
           //result = (Object) envelope.getResponse();
        } catch (Exception e) {
           e.printStackTrace();
        }
       //Toast.makeText(this, result.toString(), Toast.LENGTH_SHORT).show();
        return result;
    }

    //
    class DownloadTask extends AsyncTask<Void,Integer,Boolean> {
        Object  result=null;
        @Override
        protected Boolean doInBackground(Void... voids) {
            result =  web(); //在子线程中请求webservice
            return null;
        }
        @Override
        protected void onPostExecute(Boolean aBoolean) {
            Toast.makeText(PDAActivity.this, result.toString(), Toast.LENGTH_SHORT).show();
        }
    }
}

 

转载于:https://www.cnblogs.com/buchizaodian/p/8717337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值