- WebService简介
WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。Android系统中比较常用的有Ksoap2,可以从http://code.google.com/p/ksoap2-android/downloads/list进行下载;将下载的ksoap2-xxx-dependencies.jar包复制到工程的lib目录中即可使用。
查询手机号码归属地
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//命名空间
String nameSpace="http://WebXml.com.cn/";
//调用的方法名称
String methodName="getMobileCodeInfo";
//EndPoint
String endPoint="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx";
//SOAP
String soapAction="http://WebXml.com.cn/getMobileCodeInfo";
public void webServiceClick(View v){
new Thread(new Runnable() {
@Override
public void run() {
//指定WebService的命名空间和调用的方法名
SoapObject rpc=new SoapObject(nameSpace,methodName);
//设置需调用WebService
rpc.addProperty("mobileCode","15236547891");
rpc.addProperty("userId","");
//生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.bodyOut=rpc;
envelope.dotNet=true;//设置是否调用的是dotNet开发的webService
HttpTransportSE transport=new HttpTransportSE(endPoint);
try {
transport.call(soapAction,envelope);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
//获取返回的数据
SoapObject object= (SoapObject) envelope.bodyIn;
//获取返回的结果
String result=object.getProperty(0).toString();
System.out.println(result);
}
}).start();
}
}
添加访问网络的权限
<uses-permission android:name="android.permission.INTERNET"/>