webservice
发布时间:2020-12-16 23:39:17 所属栏目:安全 来源:网络整理
导读: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.ac
1. 查手机号 public class MainActivity extends Activity { private EditText et; private TextView tv; protected String num; @Override protected 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() { @Override public 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() { @Override public 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、userId rpc.addProperty("mobileCode",num); rpc.addProperty("userId",""); // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); envelope.bodyOut=rpc; // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; // 等价于envelope.bodyOut = rpc; envelope.setOutputSoapObject(rpc); HttpTransportSE transport = new HttpTransportSE(endPoint); // 调用WebService try { 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 Action private EditText weather_et; private TextView weather_tv; private String weatherToday; @Override protected 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() { @Override public 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>{ @Override protected String doInBackground(String... params) { String str=params[0]; SoapObject object=getWeather(str); return parseWeather(object); } @Override protected 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、userId rpc.addProperty("theCityName",cityName); // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); envelope.bodyOut=rpc; // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; // 等价于envelope.bodyOut = rpc; envelope.setOutputSoapObject(rpc); HttpTransportSE transport = new HttpTransportSE(endPoint); // 调用WebService try { 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"; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |