2012-09-13 4 views
0

다음 코드는 내 첫 번째 인터넷 앱에서 가져온 것입니다. 나에게 사용할 수있는 WLAN이 없기 때문에 그것을 테스트하지 않았습니다. 제가하고 싶은 것은 웹 사이트에서 데이터를 검색하는 것입니다.인터넷에서 데이터 가져 오기

이러한 작업을 수행하기 위해 수행해야 할 절차가 있습니까?

자바 코드 :

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 스레드

  • 사용 AsyncTask에서 네트워크 스레드를 사용하지 마십시오 동작하는 예제는 여기에서 찾을 수 있습니다 : Getting info from api using JSON

    위 게시물에 내 대답을 참조하십시오 서버에서 장치로 데이터를 다운로드 할 수 있습니다. 이 작업 예제는 좋은 시작이 될 수 있습니다.