2014-05-20 2 views
-1

Я использую это для подключения к Интернету и получить исходный код страницы, очень просто:Невозможно получить данные из Интернета в Android

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_update_library); 
    String data = ""; 

    if(!isNetworkAvailable()){ 
     TextView tv = (TextView) findViewById(R.id.placeholder); 
     tv.setText("No Connection!!!"); 
     return; 
    } 

    try{ 
     URL url = null; 
     url = new URL("http://google.com"); 
     URLConnection conn = url.openConnection(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     String line = ""; 
     while((line = reader.readLine()) != null){ 
      data += line; 
     } 
     TextView tv = (TextView) findViewById(R.id.placeholder); 
     tv.setText(data); 
    }catch(Exception e){ 
     TextView tv = (TextView) findViewById(R.id.placeholder); 
     tv.setText("error : "+e.toString()); 
    } 
} 

но данные не возвращается из интернета. В чем проблема?

+0

ue нить os asynctask. нет работы в сети по ui-потоку – Raghunandan

+0

Вы пытались отладить свое приложение? – nikis

+0

@ Raghunandan, не возможно ли подключиться к Интернету в главной теме? я видел это в учебнике! – ConductedClever

ответ

0

Вам необходимо поместить свой код, который извлекает данные из Интернета, в фоновом задании, либо в службе, либо в AsyncTask.

0

попробовать ниже код: -

TextView tv = (TextView) findViewById(R.id.placeholder); 
if(!isNetworkAvailable()){ 

    tv.setText("No Connection!!!"); 
    new ChangePasswordAsyncTask().execute(); 
    return; 
} 


private class ConnectToServer extends AsyncTask<String, String, String> 
{ 
    private String data; 

    @Override 
    protected void onPreExecute() 
    { 
     super.onPreExecute(); 
    } 

    @Override 
    protected String doInBackground(String... params) 
    { 

     try 
     { 
      // do stuff from server 
        URL url = null; 
        url = new URL("http://google.com"); 
       URLConnection conn = url.openConnection(); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
        String line = ""; 
       while((line = reader.readLine()) != null){ 
        data += line; 
       } 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return data; 
    } 

    @Override 
    protected void onProgressUpdate(String... values) 
    { 
     // TODO Auto-generated method stub 
     super.onProgressUpdate(values); 
    } 

    @Override 
    protected void onPostExecute(String result) 
    { 
     super.onPostExecute(result); 
     // String jData = ""; 
     try 
     { 
      // set UI on this method 

       tv.setText(data); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
      // Toast.makeText(context, jMessage, Toast.LENGTH_LONG).show(); 
     } 
    } 
} 
+0

В нем говорится, что поиск по id не может использоваться в async-задании! – ConductedClever

+0

попробуйте обновленный код – duggu

+0

Я не могу добавить свой код в свой проект! – ConductedClever

0

У вас есть разрешение в манифесте для доступа в Интернет?

+0

Это ответ? – Gunaseelan

+0

да, у меня есть выход для доступа в Интернет. – ConductedClever

Смежные вопросы