[置顶] android调用.net的webservice的例子获取手机的归属地
16lz
2022-04-24
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")@Overrideprotected 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() {@Overridepublic 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、userIdrpc.addProperty("mobileCode", phone_number);rpc.addProperty("userId", "");// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = rpc;// 设置是否调用的是dotNet开发的WebServiceenvelope.dotNet = true;// 等价于envelope.bodyOut = rpc;envelope.setOutputSoapObject(rpc);HttpTransportSE transport = new HttpTransportSE(URL);try {// 调用WebServicetransport.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);}@Overridepublic 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的代码为;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:background="@drawable/dd" android:layout_height="fill_parent" > <TextView 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" /> <EditText 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" /> <Button 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="查询" /> </RelativeLayout>
源码下载
更多相关文章
- Android中设置全屏的方法
- android scrollview嵌套listview出现高度显示不全解决方案
- Android(安卓)HAL:helloworld例程
- Android中设置全屏的方法
- Android(安卓)Gridview 禁止滚动的二种方法
- How to get the android resolution
- Android(安卓)触摸消息处理
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用