加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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";
			
	}
	

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读