package com.example.weather_android;
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.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
// 请求地址 xml
private static final String url = "http://web.36wu.com/WeatherService.asmx?WSDL";
// soapAction地址
private static final String soapAction = "http://www.36wu.com/GetWeather";
// 名称空间
private static final String namespace = "http://www.36wu.com/";
// 方法名
private static final String name = "GetWeather";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
public void run() {
getWeatherInfo();
}
}.start();
}
private void getWeatherInfo() {
// Url --打开一个连接
// SOAP 协议
// 1---定义请求对象
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
// 3--创建高级信封
SoapSerializationEnvelope serializationEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 5---创建要传输的信息对象
SoapObject soapObject = new SoapObject(namespace, name);
// 6 ---往对象上信息
soapObject.addProperty("district", "北京");
soapObject.addProperty("authkey", "e4af447316024848945c217a075297d9");
// 7 --设置支持.net
serializationEnvelope.dotNet = true;
// 4--信封携带数据
serializationEnvelope.bodyOut = soapObject;
// 2--开始请求
try {
System.out.println("--------------");
httpTransportSE.call(soapAction, serializationEnvelope);
// 获取请求结果
SoapObject soapOb = (SoapObject) serializationEnvelope.bodyIn;
SoapObject object = (SoapObject) soapOb
.getProperty("GetWeatherResult");
SoapObject data = (SoapObject) object.getProperty("data");
System.out.println(data.toString());
// ---通过字符串截串 data:4,ddd:4
System.out.println("--------------999999999");
} catch (Exception e) {
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.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
// 请求地址 xml
private static final String url = "http://web.36wu.com/WeatherService.asmx?WSDL";
// soapAction地址
private static final String soapAction = "http://www.36wu.com/GetWeather";
// 名称空间
private static final String namespace = "http://www.36wu.com/";
// 方法名
private static final String name = "GetWeather";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
public void run() {
getWeatherInfo();
}
}.start();
}
private void getWeatherInfo() {
// Url --打开一个连接
// SOAP 协议
// 1---定义请求对象
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
// 3--创建高级信封
SoapSerializationEnvelope serializationEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 5---创建要传输的信息对象
SoapObject soapObject = new SoapObject(namespace, name);
// 6 ---往对象上信息
soapObject.addProperty("district", "北京");
soapObject.addProperty("authkey", "e4af447316024848945c217a075297d9");
// 7 --设置支持.net
serializationEnvelope.dotNet = true;
// 4--信封携带数据
serializationEnvelope.bodyOut = soapObject;
// 2--开始请求
try {
System.out.println("--------------");
httpTransportSE.call(soapAction, serializationEnvelope);
// 获取请求结果
SoapObject soapOb = (SoapObject) serializationEnvelope.bodyIn;
SoapObject object = (SoapObject) soapOb
.getProperty("GetWeatherResult");
SoapObject data = (SoapObject) object.getProperty("data");
System.out.println(data.toString());
// ---通过字符串截串 data:4,ddd:4
System.out.println("--------------999999999");
} catch (Exception e) {
e.printStackTrace();
}
}
}