2012-09-13 132 views
0

以下代碼來自我的第一個互聯網應用程序。我沒有測試過,因爲沒有WLAN可用。接下來我想要從網站上檢索數據。從互聯網上檢索數據

是否有任何程序可以實現這樣的任務?

Java代碼:

public class Internet00 extends Activity { 

TextView tv00; 
public boolean isNetworkAvailable() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netWorkinfo = cm.getActiveNetworkInfo(); 

    if (netWorkinfo != null && netWorkinfo.isConnected()) { 
     return true; 
    } 
    return false; 
} 
private void readStream(InputStream in) { 
    BufferedReader reader = null; 
    try { 
     reader = new BufferedReader(new InputStreamReader (in)); 
     String line=""; 
     while ((line=reader.readLine()) != null) 
      tv00.setText(line); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (reader != null) { 
      try { 
      reader.close(); 
      } catch (IOException e) { 
      e.printStackTrace(); 
      } 
     } 
    } 
} 
@SuppressLint({ "ParserError", "NewApi" }) 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_internet00); 

    tv00 = (TextView) findViewById(R.id.tv00); 
    if(isNetworkAvailable()) { 
     StrictMode.ThreadPolicy policy = new StrictMode. 
      ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 

    try { 
      URL url = new URL("http://www.vogella.com"); 
      HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); 
      readStream(con.getInputStream()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      } 
     } 
    } 
} 

回答

0

你能成爲一個更具體一點?

它在我看來像你正在檢索數據。

你的代碼應該失敗,因爲你正在UI線程中做網絡的東西。

+0

我的意思是如果網站包含表格的數據,如何檢索這些數據按行或根據列名 – LetsamrIt

+0

你必須解析的HTML。有幾個選項可以解析html。我的建議是[jsoup library](http://jsoup.org/)。它的快速和易於使用。 – andre

0

是的,當然,你需要遵循一些規則。

  1. ,請不要使用網線在UI線程
  2. 使用AsyncTask下載相關的工作

工作示例可以在這裏找到:Getting info from api using JSON

請參閱我的答案在上述職位將數據從服務器下載到您的設備。這個工作例子對你來說可能是一個好的開始。