当前位置:编程学习 > wap >>

Android解析WebService天气预报时 connection timeout问题

public static String NAME_SPACE = "http://WebXml.com.cn/";
public static String URL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";
public static List<String> getprovincelist() {
String getprovincname = "getSupportProvince";
HttpTransportSE ht = new HttpTransportSE(URL, 60000);
ht.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
SoapObject soapject = new SoapObject(NAME_SPACE, getprovincname);
envelope.bodyOut = soapject;
envelope.dotNet = true;
try {
ht.call(NAME_SPACE + getprovincname, envelope);
Log.v("text", "9999999999999");
if (envelope.getResponse() != null) {
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result
.getProperty(getprovincname + "Result");
return parseProvinceCity(detail);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private static List<String> parseProvinceCity(SoapObject detail) {
ArrayList<String> result = new ArrayList<String>();
for (int i = 0; i < detail.getPropertyCount(); i++) {
result.add(detail.getProperty(i).toString().split(",")[0]);
}
return result;
}
用wifi不会出问题,用3G网络时候就会报connection timeout,代码会卡在ht.call(NAME_SPACE + getprovincname, envelope);这一行,它网站返回的数据只是一个size为36的ArrayList<String>,也不是多大,请各位大侠分析下解决方案。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,