Android 프로 그래 밍 시 나 닷 컴 일기예보 데 이 터 를 얻 는 방법

이 사례 는 안 드 로 이 드 프로 그래 밍 이 시 나 닷 컴 일기예보 데 이 터 를 얻 는 방법 을 보 여 준다.여러분 께 참고 하도록 공유 하 겠 습 니 다. 구체 적 으로 는 다음 과 같 습 니 다.
시 나 닷 컴 일기예보 주소:
http://php.weather.sina.com.cn/xml.php?city=우 한 & amp; password = DjoynieT8234jlsK & amp; day = 0
그 중에서 city 후의 도 시 는 자바. net. URLEncoder. encode ("무한", "gb 2312") 를 사용 할 수 있 습 니 다.'무한' 이 라 고 직접 쓸 수도 있 지만 'wuhan' 을 사용 할 수 없습니다.비밀번호 고정
데 이 는 0 으로 이날 날 씨 를, 1 은 다음날 날 씨 를, 2 는 사흘 째 날 씨 를 나타 내 는 것 으로 유추 하면 최대 4 다.
도구 종류:
1. 멤버 정의

/**        */
public final String SINA_URL = "http://php.weather.sina.com.cn/xml.php";
/**     XML     */
public final String PASSWORD = "DJOYnieT8234jlsK";
/**    */
public String city;
/**      */
public String status1;
/**      */
public String status2;
/**         */
public String figure1;
/**        */
public String figure2;
/**      */
public String direction1;
/**      */
public String direction2;
/**      */
public String power1;
/**      */
public String power2;
/**      */
public String temperature1;
/**      */
public String temperature2;
/**      */
public String tgd;
/**       */
public String zwx_l;
/**       */
public String zwx_s;
/**       */
public String ssd_l;
/**       */
public String ssd_s;
/**      */
public String ktk_l;
/**      */
public String ktk_s;
/**      */
public String xcz_l;
/**      */
public String xcz_s;
/**      */
public String chy_l;
/**      */
public String chy_shuoming;
/**         */
public String pollution_l;
/**           */
public String pollution_s;
/**      */
public String gm_l;
/**      */
public String gm_s;
/**      */
public String yd_l;
/**      */
public String yd_s;


2. 날씨 데이터 가 져 오기

/**
*     
* 
* @param city
*      
* @param day
*   0      ,1        ,2        ,    ,   4
*/
public void UpdateWeatherInfo(String city, String day) {
  if (city.equals("")) {
   isLoaded = false;
   return;
  }
  String html = null;
  try {
   html = doGet(SINA_URL + "?city="
     + java.net.URLEncoder.encode(city, "gb2312") + "&password="
     + PASSWORD + "&day=" + day);
   Document doc = Jsoup.parse(html);
   if (doc.body().getElementsByTag("Profiles").size() == 0) {
    isLoaded = false;
    return;
   }
   if (doc.body().getElementsByTag("Profiles").get(0).getElementsByTag("Weather").size() == 0) {
    isLoaded = false;
    return;
   }
   Element element = doc.body().getElementsByTag("Profiles").get(0)
     .getElementsByTag("Weather").get(0);
   this.city = element.getElementsByTag("city").text();
   status1 = element.getElementsByTag("status1").text();
   status2 = element.getElementsByTag("status2").text();
   figure1 = element.getElementsByTag("figure1").text();
   figure2 = element.getElementsByTag("figure2").text();
   direction1 = element.getElementsByTag("direction1").text();
   direction2 = element.getElementsByTag("direction2").text();
   power1 = element.getElementsByTag("power1").text();
   power2 = element.getElementsByTag("power2").text();
   temperature1 = element.getElementsByTag("temperature1").text();
   temperature2 = element.getElementsByTag("temperature2").text();
   tgd = element.getElementsByTag("tgd").text();
   zwx_l = element.getElementsByTag("zwx_l").text();
   zwx_s = element.getElementsByTag("zwx_s").text();
   ssd_l = element.getElementsByTag("ssd_l").text();
   ssd_s = element.getElementsByTag("ssd_s").text();
   ktk_l = element.getElementsByTag("ktk_l").text();
   ktk_s = element.getElementsByTag("ktk_s").text();
   xcz_l = element.getElementsByTag("xcz_l").text();
   xcz_s = element.getElementsByTag("xcz_s").text();
   chy_l = element.getElementsByTag("chy_l").text();
   chy_shuoming = element.getElementsByTag("chy_shuoming").text();
   pollution_l = element.getElementsByTag("pollution_l").text();
   pollution_s = element.getElementsByTag("pollution_s").text();
   gm_l = element.getElementsByTag("gm_l").text();
   gm_s = element.getElementsByTag("gm_s").text();
   yd_l = element.getElementsByTag("yd_l").text();
   yd_s = element.getElementsByTag("yd_s").text();
   isLoaded = true;
  } catch (UnsupportedEncodingException e) {
   isLoaded = false;
  }
}

3. 액세스 네트워크

public static final String ENCODE = "utf-8";
public static String doGet(String url) {
  try {
   HttpGet httpGet = new HttpGet(url);
   HttpClient hc = new DefaultHttpClient();
   HttpResponse ht = hc.execute(httpGet);
   if (ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    HttpEntity he = ht.getEntity();
    InputStream is = he.getContent();
    BufferedReader br = new BufferedReader(
      new InputStreamReader(is));
    String response = "";
    String readLine = null;
    while ((readLine = br.readLine()) != null) {
     response = response + readLine;
    }
    is.close();
    br.close();
    return response;
   } else {
    return "error";
   }
  } catch (Exception e) {
   return "error";
  }
}


4. jsoup 에 대해 참고 할 수 있 습 니 다.
http://baike.baidu.com/view/4066913.htm
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기