package com.example.web_weather;
import java.io.IOException;
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 android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
// String key = "5ae00c9c22fa435ba56161ef0d263b7c";
String url = "http://web.36wu.com/WeatherService.asmx?WSDL";
String soapAction = "http://www.36wu.com/GetWeather";
// 命名空间
String namespace = "http://www.36wu.com/";
// 方法名
String name = "GetWeather";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 联网获取天气情况
*/
// 安卓4.0以后不能在主线程操作联网
new Thread() {
public void run() {
getweather();
};
}.start();
}
public void getweather() {
// Https是加密的
// 得到 httpTransportSEUI对象 ,设置请求网址
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
// 得到SoapSerializationEnvelope,携带与服务器通信的信息
SoapSerializationEnvelope SerializationEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// (键值对的形式携带信息),
SoapObject soapObject = new SoapObject(namespace, name);
soapObject.addProperty("district", "葫芦岛");
soapObject.addProperty("authkey", "5ae00c9c22fa435ba56161ef0d263b7c");
// 设置传递给服务器的信息
SerializationEnvelope.bodyOut = soapObject;
// 设置对.NET语言更好的支持
SerializationEnvelope.dotNet = true;
try {
// 开始访问
httpTransportSE.call(soapAction, SerializationEnvelope);
// 得到服务器返回的数据
System.out.println("12");
SoapObject bodyIn = (SoapObject) SerializationEnvelope.bodyIn;
System.out.println("整体信息:------" + bodyIn.toString());
SoapObject GetWeatherResult = (SoapObject) bodyIn
.getProperty("GetWeatherResult");
System.out.println(GetWeatherResult.toString());
int count = GetWeatherResult.getPropertyCount();
System.out.println(count + "------条数据");
// 解析data里的数据
SoapObject data = (SoapObject) GetWeatherResult.getProperty("data");
System.out.println("data里的数据=====" + data.toString());
// 获得省份
Object prov = data.getProperty("prov");
System.out.println("prov---" + prov.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}
import java.io.IOException;
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 android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
// String key = "5ae00c9c22fa435ba56161ef0d263b7c";
String url = "http://web.36wu.com/WeatherService.asmx?WSDL";
String soapAction = "http://www.36wu.com/GetWeather";
// 命名空间
String namespace = "http://www.36wu.com/";
// 方法名
String name = "GetWeather";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 联网获取天气情况
*/
// 安卓4.0以后不能在主线程操作联网
new Thread() {
public void run() {
getweather();
};
}.start();
}
public void getweather() {
// Https是加密的
// 得到 httpTransportSEUI对象 ,设置请求网址
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
// 得到SoapSerializationEnvelope,携带与服务器通信的信息
SoapSerializationEnvelope SerializationEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// (键值对的形式携带信息),
SoapObject soapObject = new SoapObject(namespace, name);
soapObject.addProperty("district", "葫芦岛");
soapObject.addProperty("authkey", "5ae00c9c22fa435ba56161ef0d263b7c");
// 设置传递给服务器的信息
SerializationEnvelope.bodyOut = soapObject;
// 设置对.NET语言更好的支持
SerializationEnvelope.dotNet = true;
try {
// 开始访问
httpTransportSE.call(soapAction, SerializationEnvelope);
// 得到服务器返回的数据
System.out.println("12");
SoapObject bodyIn = (SoapObject) SerializationEnvelope.bodyIn;
System.out.println("整体信息:------" + bodyIn.toString());
SoapObject GetWeatherResult = (SoapObject) bodyIn
.getProperty("GetWeatherResult");
System.out.println(GetWeatherResult.toString());
int count = GetWeatherResult.getPropertyCount();
System.out.println(count + "------条数据");
// 解析data里的数据
SoapObject data = (SoapObject) GetWeatherResult.getProperty("data");
System.out.println("data里的数据=====" + data.toString());
// 获得省份
Object prov = data.getProperty("prov");
System.out.println("prov---" + prov.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}