2014-11-25 4 views
0

Я пытаюсь извлечь текст из простого текстового файла, загруженного на веб-сайт, доступный непосредственно по ссылке, которую я использовал в своем коде, но по какой-то причине не работает. Используя инструмент отладки, я узнал, что он выбрасывает исключение после строки HttpResponse. Я понятия не имею, как решить эту проблему. (Извините за мой длинный вопрос, я новичок в андроид и StackOverflow)не может получить текст из файла на веб-сайте android

package com.example.trial; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.entity.BufferedHttpEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    DefaultHttpClient httpclient = new DefaultHttpClient(); 
    TextView TextView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     try { 
      HttpGet httppost = new HttpGet(
        "http://www.androidworkshopmit.webs.com/abc.txt"); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity ht = response.getEntity(); 

      BufferedHttpEntity buf = new BufferedHttpEntity(ht); 

      InputStream is = buf.getContent(); 

      BufferedReader r = new BufferedReader(new InputStreamReader(is)); 

      StringBuilder total = new StringBuilder(); 
      String line; 
      while ((line = r.readLine()) != null) { 
       total.append(line + "\n"); 
      } 
      TextView.setText(total); 
     } catch (Exception e) { 
      System.out.print("hi, there is some error!"); 
     } 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Ответы верны. Если вы читаете, что называется ошибкой, это называется NetworkOnMainThreadException. Довольно очевидно, что это значит. Не разрешено подключение к сети. –

ответ

0

Мой код, но по какой-то причине его не работает. Используя инструмент отладки, я узнал, что он выбрасывает исключение после строки HttpResponse.

Вы выполняете операции в сети (HTTP GET) в своем основном потоке пользовательского интерфейса. Выполняйте все сетевые вызовы в фоновом потоке с помощью AsyncTask. Вот базовый пример того, как его использовать: How to use AsyncTask correctly in Android

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

  • Нет связанных вопросов^_^