android调用webservice的例子,android调用.net的webservice的例子获取手机的归属地

这篇博客展示了如何在Android应用中使用ksoap2库调用WebService来查询手机号码的归属地。代码示例详细解释了从用户输入获取电话号码,创建线程,发送SOAP请求,解析返回结果,并最终通过Toast显示查询结果的过程。
摘要由CSDN通过智能技术生成

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的代码为;

android:layout_width="fill_parent"

android:background="@drawable/dd"

android:layout_height="fill_parent" >

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="24dp"

android:text="手机号码归属地查询"

android:textSize="30sp"

android:textStyle="bold" />

android:id="@+id/editText1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentRight="true"

android:layout_below="@+id/textView1"

android:layout_marginTop="23dp"

android:phoneNumber="true"

android:hint="请至少输入你手机号码的前7位"

android:ems="10" />

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:text="查询" />

源码下载

原文:http://blog.csdn.net/abc5382334/article/details/22873499

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值