AndroidManifest.xml有写网络权限,用模拟器就可以运行,在手机上就报下面的错!这是源代码:
private static final String NAMESPACE = "http://WebXml.com.cn/";
private static String URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx";
private static final String METHOD_NAME = "getWeather";
private static String SOAP_ACTION = "http://WebXml.com.cn/getWeather";
private SoapObject detail;
public SoapObject getWeather(String cityName) {
try {
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
rpc.addProperty("theCityCode", cityName);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
HttpTransportSE ht = new HttpTransportSE(URL);
ht.debug = true;
ht.call(SOAP_ACTION, envelope);
detail =(SoapObject) envelope.getResponse();
return detail;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}这里是LOG的信息:
10-09 16:18:43.447: WARN/System.err(5930): java.net.SocketTimeoutException: Connection timed out
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method)
10-09 16:18:43.447: WARN/System.err(5930): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:440)
10-09 16:18:43.447: WARN/System.err(5930): at java.net.Socket.connect(Socket.java:1013)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)
10-09 16:18:43.447: WARN/System.err(5930): at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:76)
10-09 16:18:43.447: WARN/System.err(5930): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:146)
10-09 16:18:43.447: WARN/System.err(5930): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
10-09 16:18:43.447: WARN/System.err(5930): at com.android.easysearch.utils.httpGetWeatherdate.getWeather(httpGetWeatherdate.java:26)
10-09 16:18:43.457: WARN/System.err(5930): at com.android.easysearch.SearchWeatherActivity.showWeatherInfo(SearchWeatherActivity.java:67)
10-09 16:18:43.457: WARN/System.err(5930): at com.android.easysearch.SearchWeatherActivity.access$1(SearchWeatherActivity.java:65)
10-09 16:18:43.457: WARN/System.err(5930): at com.android.easysearch.SearchWeatherActivity$1.handleMessage(SearchWeatherActivity.java:49)
10-09 16:18:43.467: WARN/System.err(5930): at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 16:18:43.467: WARN/System.err(5930): at android.os.Looper.loop(Looper.java:143)
10-09 16:18:43.467: WARN/System.err(5930): at android.app.ActivityThread.main(ActivityThread.java:4196)
10-09 16:18:43.467: WARN/System.err(5930): at java.lang.reflect.Method.invokeNative(Native Method)
10-09 16:18:43.467: WARN/System.err(5930): at java.lang.reflect.Method.invoke(Method.java:507)
10-09 16:18:43.467: WARN/System.err(5930): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-09 16:18:43.467: WARN/System.err(5930): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-09 16:18:43.467: WARN/System.err(5930): at dalvik.system.NativeStart.main(Native Method)
private static final String NAMESPACE = "http://WebXml.com.cn/";
private static String URL = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx";
private static final String METHOD_NAME = "getWeather";
private static String SOAP_ACTION = "http://WebXml.com.cn/getWeather";
private SoapObject detail;
public SoapObject getWeather(String cityName) {
try {
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
rpc.addProperty("theCityCode", cityName);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
HttpTransportSE ht = new HttpTransportSE(URL);
ht.debug = true;
ht.call(SOAP_ACTION, envelope);
detail =(SoapObject) envelope.getResponse();
return detail;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}这里是LOG的信息:
10-09 16:18:43.447: WARN/System.err(5930): java.net.SocketTimeoutException: Connection timed out
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method)
10-09 16:18:43.447: WARN/System.err(5930): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:440)
10-09 16:18:43.447: WARN/System.err(5930): at java.net.Socket.connect(Socket.java:1013)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
10-09 16:18:43.447: WARN/System.err(5930): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)
10-09 16:18:43.447: WARN/System.err(5930): at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:76)
10-09 16:18:43.447: WARN/System.err(5930): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:146)
10-09 16:18:43.447: WARN/System.err(5930): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
10-09 16:18:43.447: WARN/System.err(5930): at com.android.easysearch.utils.httpGetWeatherdate.getWeather(httpGetWeatherdate.java:26)
10-09 16:18:43.457: WARN/System.err(5930): at com.android.easysearch.SearchWeatherActivity.showWeatherInfo(SearchWeatherActivity.java:67)
10-09 16:18:43.457: WARN/System.err(5930): at com.android.easysearch.SearchWeatherActivity.access$1(SearchWeatherActivity.java:65)
10-09 16:18:43.457: WARN/System.err(5930): at com.android.easysearch.SearchWeatherActivity$1.handleMessage(SearchWeatherActivity.java:49)
10-09 16:18:43.467: WARN/System.err(5930): at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 16:18:43.467: WARN/System.err(5930): at android.os.Looper.loop(Looper.java:143)
10-09 16:18:43.467: WARN/System.err(5930): at android.app.ActivityThread.main(ActivityThread.java:4196)
10-09 16:18:43.467: WARN/System.err(5930): at java.lang.reflect.Method.invokeNative(Native Method)
10-09 16:18:43.467: WARN/System.err(5930): at java.lang.reflect.Method.invoke(Method.java:507)
10-09 16:18:43.467: WARN/System.err(5930): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-09 16:18:43.467: WARN/System.err(5930): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-09 16:18:43.467: WARN/System.err(5930): at dalvik.system.NativeStart.main(Native Method)
其实也简单
就是提交XML,得到结果后再解析