private class WeatherThread extends Thread {
private WeatherInfo weather = null;
WeatherThread() {
weather = new WeatherInfo();
}
public void run() {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet get = new HttpGet("http://m.weather.com.cn/data/101270101.html");
HttpResponse response = null;
response = httpclient.execute(get);
if (response == null
|| response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
return;
}
if (parse_http_response(response, weather) == false) {
return;
}}
}
private boolean parse_http_response(HttpResponse response, WeatherInfo info) {
HttpEntity entity = response.getEntity();
BufferedReader br = null;
StringBuffer sb = new StringBuffer(1024);
String result = null;
br = new BufferedReader(new InputStreamReader(entity.getContent()),
1024);
result = br.readLine();
while (result != null) {
sb.append(result);
result = br.readLine();
}
JSONObject json = null;
JSONObject wther = null;
json = new JSONObject(sb.toString());
wther = json.getJSONObject("weatherinfo");
if (wther != null) {
info.date = wther.getString("date_y");
info.temp_high = wther.getString("temp1");
info.weather = wther.getString("weather1");
info.wind = wther.getString("wind1");
info.img_title1 = wther.getString("img_title1");
info.img_title2 = wther.getString("img_title2");
if (weather_icon.containsKey(info.img_title1)) {
Integer resid = weather_icon.get(info.img_title1);
info.res_id = resid.intValue();
} else {
info.res_id = R.drawable.w0;
}
}
return true;
}
}