public class MainActivity extends AppCompatActivity { private TextView tvContent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 //局部变量变成员变量快捷键 : Ctrl + Alt + F -> 敲回车(Enter) tvContent = (TextView) findViewById(R.id.tvContent); } public void btnGetWeather(View view){ //Alter + Enter 导包快捷键 new Thread(){ @Override public void run() { getWeather(); } }.start(); } /** * 获取天气 */ private void getWeather(){ //异常捕获快捷键 : Ctrl + Alt + T try { //创建一个信封 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); //信纸 namespace : 命名空间 移动通信学院 name : 服务名字 天气服务 Android、测试、IOS SoapObject object = new SoapObject("http://WebXml.com.cn/","getWeather"); //设置请求参数 object.addProperty("theCityCode","北京"); object.addProperty("theUserID","7b810fda62b04020b0f23e443e6e8338"); //将信装到信封里面 envelope.bodyOut = object; //设置跨语言平台兼容性 envelope.dotNet = true; //呼叫快递员 HttpTransportSE httpTransportSE = new HttpTransportSE("http://ws.webxml.com.cn/WebServices/WeatherWS.asmx"); //让快递员送信 //soapAction : 动作 -> 邮票 httpTransportSE.call("http://WebXml.com.cn/getWeather",envelope); //等待服务器响应 if(envelope.getResponse() != null){//判断服务器响应内容是否为空,如果为空,则没有任何信息,反之亦然 //得到服务器响应的内容 final SoapObject result = (SoapObject) envelope.bodyIn; System.out.println("请求结果 : "+result.toString()); runOnUiThread(new Runnable() { @Override public void run() { //运行在主线程里面的 //设置文本信息 tvContent.setText(result.toString()); } }); } } catch (Exception e) { e.printStackTrace(); } } }