博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android调用.net的webservice的例子获取手机的归属地
阅读量:2223 次
发布时间:2019-05-08

本文共 3751 字,大约阅读时间需要 12 分钟。

package com.example.usewebservice;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.annotation.SuppressLint;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity{	/** 	 * 	 * Android平台调用WebService(手机号码归属地查询)	 * @author yejianping  	 * @date 2014-4-3 	 * 要先把ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar这个库导入到lib里面	 *  	 **/	public EditText text ;	public Button button;	public TextView tx;	public String telephone_number;	public MyThread thread;	public Handler handler; 		@SuppressLint("HandlerLeak")	@Override	protected void onCreate(Bundle savedInstanceState)	{		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		text = (EditText)findViewById(R.id.editText1);		button = (Button)findViewById(R.id.button1);		thread = new MyThread();		button.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View v)			{				// TODO 自动生成的方法存根 			 telephone_number = text.getText().toString().trim();				if(telephone_number.equals("")||telephone_number.length()<7)				{					text.setError("您输入的手机号码(段)有误!");					text.requestFocus();				}				else				{					new Thread(thread).start();;				}			}		});				handler = new Handler() {			@SuppressLint("HandlerLeak")			public void handleMessage(Message msg) {				switch (msg.what) {				case 0x01:					Bundle bundle = new Bundle();	    			bundle = msg.getData();	    			Toast.makeText(MainActivity.this, bundle.getString("result"), Toast.LENGTH_SHORT).show();				}			}		};			}			//创建线程    public  class MyThread implements Runnable    {	   	public void run() 	   	{	      		Looper.prepare();//创建本线程的消息队列并初始化      		getTelephoneInfo(telephone_number);      		Looper.loop();//开始运行消息队列	   	}     }				public void getTelephoneInfo(String phone_number)	{		//命名空间		String nameSpace = "http://WebXml.com.cn/";		//调用的方法名称		String methodName = "getMobileCodeInfo";		// webservice的网址		String URL = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";		//命名空间+方法		String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";		// 指定WebService的命名空间和调用的方法名		SoapObject rpc = new SoapObject(nameSpace, methodName);		// 设置需调用WebService接口需要传入的两个参数mobileCode、userId		rpc.addProperty("mobileCode", phone_number);		rpc.addProperty("userId", "");		// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);		envelope.bodyOut = rpc;		// 设置是否调用的是dotNet开发的WebService		envelope.dotNet = true;		// 等价于		envelope.bodyOut = rpc;		envelope.setOutputSoapObject(rpc);		HttpTransportSE transport = new HttpTransportSE(URL);		try 		{			// 调用WebService			transport.call(soapAction, envelope);		}		catch (Exception e)		{			e.printStackTrace();		}		 		// 获取返回的数据		SoapObject object = (SoapObject) envelope.bodyIn;		// 获取返回的结果		String result = object.getProperty("getMobileCodeInfoResult").toString();		Message msg=new Message();			Bundle bundle = new Bundle();		bundle.putString("result", result);		msg.setData(bundle);		msg.what = 0x01;		handler.handleMessage(msg);		//return result;		// 将WebService返回的结果显示在TextView中		//tx.setText(result);	}	@Override	public boolean onCreateOptionsMenu(Menu menu)	{		// Inflate the menu; this adds items to the action bar if it is present.		getMenuInflater().inflate(R.menu.main, menu);		return true;	}}
 
 

xml的代码为;

转载地址:http://ozxfb.baihongyu.com/

你可能感兴趣的文章
【数据结构】栈的简单理解以及对栈的基本操作
查看>>
【数据结构】简单不带环迷宫的实现(用栈实现)
查看>>
【C语言】简单的了解递归(求斐波那契,n的阶乘,字符串长度,把一个整型(无符号),转化为字符型并打印出来)
查看>>
【数据结构】动态栈的实现
查看>>
【数据结构】简单的迷宫(用递归实现)
查看>>
【数据结构】队列的基本认识和队列的基本操作
查看>>
【数据结构】循环队列的认识和基本操作
查看>>
【LeetCode】无重复字符的最长子串
查看>>
时间复杂度
查看>>
【C++】动态内存管理 new和delete的理解
查看>>
【Linux】了解根目录下每个文件的作用
查看>>
【Linux】进程的理解(一)
查看>>
【Linux】进程的理解(二)
查看>>
【C语言】深度理解函数的调用(栈帧)
查看>>
【Linux】进程的理解(三)
查看>>
【C++】带头节点的双向线链表的实现
查看>>
【C++】STL -- Vector容器的用法
查看>>
【Linux】Linux中的0644 和 0755的权限
查看>>
【数据结构】有关二叉树的面试题
查看>>
【Linux】内核态和用户态
查看>>