2012-02-24 104 views
0

我正在製作一個小程序,可以從網站讀取數據。 HTML文件中的字符串已經被管理,每個信息被分割; 。現在我應該讀整條生產線在這裏是例如這行:從網站閱讀線

14:47;24.02.12;18.7°C;18.7°C;285;0.5m/s; 6:48;17:37; Warm ;36;1.8;0.0; 

首先,我應該如何使用HTTP GET閱讀還是有什麼其他的?然後我想保存每個信息,他們分開;變成一個變量。我應該如何從這一行刪減每條信息。

回答

5

你肯定需要做一些功課,但這種方法會幫助你:

public static String getContentFromUrl(String url) throws ClientProtocolException, IOException { 

    HttpClient httpClient = new DefaultHttpClient(); 
    HttpGet httpGet = new HttpGet(url); 
    HttpResponse response; 

    response = httpClient.execute(httpGet); 
    HttpEntity entity = response.getEntity(); 

    if (entity != null) { 

     InputStream inStream = entity.getContent(); 

     String result = HttpService.convertStreamToString(inStream); 
     inStream.close(); 

     return result; 
    } 

    return null; 
} 

private static String convertStreamToString(InputStream is) { 

    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder sb = new StringBuilder(); 

    String line = null; 
    try { 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      is.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return sb.toString(); 
} 

這可以讓你從一個URL獲取數據。然後查找String.split將你的字符串切成可用的實體。

希望這會有所幫助!

+0

非常感謝這一點,但有一個問題,你爲什麼使用String result = HttpService.convertStreamToString(inStream);因爲convertStreamToString方法不是Httpservice的一部分? – HyperX 2012-02-24 21:17:34

+0

對不起,我沒有注意到。 HttpService實際上是我創建的類的名稱,而不是android。我應該明確地重命名我的課程。 – Tchoupi 2012-02-24 21:25:41

+0

所以我應該需要一個更多的類爲這個HttpService? – HyperX 2012-02-24 21:28:40

1
  1. 使用GET請求,以便從該網站提取數據
  2. 獨立字符串數據從HTML的標記
  3. 解析字符串分爲多個字符串或使用字符串列表,「;」作爲分隔符。

Android Java SDK String reference

+0

沒有HTML標記。它唯一的一行文字都在體內。 – HyperX 2012-02-24 14:06:06

+0

@HyperX,讓你更容易:)你可以解析響應主體而不做任何修改。 – supertopi 2012-02-24 14:08:01