webservice

来源:互联网 发布:酷狗音乐网络歌曲 编辑:程序博客网 时间:2024/06/10 16:18

1. 查手机号

public class MainActivity extends Activity {private EditText et;private TextView tv;protected String num;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn = (Button)this.findViewById(R.id.btn);et=(EditText)this.findViewById(R.id.et);tv=(TextView)this.findViewById(R.id.tv);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {num=et.getText().toString().trim();if("".equals(num) || num.length()<7){et.setError("您输入的手机号码有误");et.requestFocus();tv.setText("");return;}new Thread(new Runnable() {@Overridepublic void run() {//查询手机号码getRemoteInfo(num);}}).start();}});}//手机号段归属地查询protected void getRemoteInfo(String num) {String nameSpace="http://WebXml.com.cn/";  //命名空间String methodName = "getMobileCodeInfo";   //接口的方法名String endPoint = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";  // SOAP Action// 指定WebService的命名空间和调用的方法名SoapObject rpc = new SoapObject(nameSpace, methodName); // 设置需调用WebService接口需要传入的两个参数mobileCode、userIdrpc.addProperty("mobileCode",num);rpc.addProperty("userId","");// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);envelope.bodyOut=rpc;// 设置是否调用的是dotNet开发的WebServiceenvelope.dotNet = true;// 等价于envelope.bodyOut = rpc;envelope.setOutputSoapObject(rpc);HttpTransportSE transport = new HttpTransportSE(endPoint);// 调用WebServicetry {transport.call(soapAction, envelope);} catch (IOException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();}// 获取返回的数据 getMobileCodeInfoResponse{getMobileCodeInfoResult=15010388992:北京 北京 北京移动全球通卡; }SoapObject object = (SoapObject) envelope.bodyIn;// 获取返回的结果 String result = object.getProperty(0).toString();// 将WebService返回的结果显示在TextView中System.out.println(object.toString()+"");Message msg=Message.obtain();msg.what=1;Bundle bundle=new Bundle();bundle.putString("msg", result);msg.setData(bundle);handler.sendMessage(msg);}Handler handler=new Handler(){public void handleMessage(Message msg) {switch (msg.what) {case 1:String result=msg.getData().getString("msg");tv.setText(result);break;default:break;}};};}

2 天气

public class WeatherUI extends Activity {private static final String NAMESPACE = "http://WebXml.com.cn/";private static String endPoint = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";private String methodName = "getWeatherbyCityName";   //接口的方法名private String soapAction = "http://WebXml.com.cn/getWeatherbyCityName";  // SOAP Actionprivate EditText weather_et;private TextView weather_tv;private String weatherToday;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.weather);weather_et =(EditText)this.findViewById(R.id.weather_et);weather_tv =(TextView)this.findViewById(R.id.weather_tv);this.findViewById(R.id.weather_btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String str=weather_et.getText().toString().trim();MyTask myTask=new MyTask();myTask.execute(str);}});}//线程class MyTask extends AsyncTask<String, String, String>{@Overrideprotected String doInBackground(String... params) {String str=params[0];SoapObject object=getWeather(str);return parseWeather(object);}@Overrideprotected void onPostExecute(String result) {if(result!=null){weather_tv.setText(result);}else{Toast.makeText(WeatherUI.this, "出错", 1).show();}super.onPostExecute(result);}}private SoapObject getWeather(String cityName) {// 指定WebService的命名空间和调用的方法名SoapObject rpc = new SoapObject(NAMESPACE, methodName); // 设置需调用WebService接口需要传入的两个参数mobileCode、userIdrpc.addProperty("theCityName",cityName);// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);envelope.bodyOut=rpc;// 设置是否调用的是dotNet开发的WebServiceenvelope.dotNet = true;// 等价于envelope.bodyOut = rpc;envelope.setOutputSoapObject(rpc);HttpTransportSE transport = new HttpTransportSE(endPoint);// 调用WebServicetry {transport.call(soapAction, envelope);} catch (IOException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();}SoapObject detail = null;try {detail = (SoapObject) envelope.getResponse();} catch (SoapFault e) {e.printStackTrace();}return detail;}public String parseWeather(SoapObject object) {System.out.println(object);String date = object.getProperty(6).toString();String date4 = object.getProperty(4).toString();weatherToday = "今天:" + date4;weatherToday = weatherToday + "\n天气:" + date.split("日")[1];System.out.println("天气0=="+date.split("日")[0]);System.out.println("天气1=="+date.split("日")[1]);weatherToday = weatherToday + "\n气温:" + object.getProperty(5).toString();return weatherToday = weatherToday + "\n风力:" + object.getProperty(7).toString() + "\n";}}



0 0