Error in HttpResponse/httpClient.execute



我是安卓系统的新手,也是Stackoverflow的新手!

我只是在创建虚拟应用程序来学习http连接。在编译时,我在这行中遇到了一个错误

HttpResponse getbackdata=http_client.exexecute(url_data);

我甚至在stackoverflow中进行了搜索,但大多数人都建议使用异常处理来捕获UnknownHostException。我做到了。我不知道我把代码搞砸了。这可能是一个小错误,因为我是初学者,我会从中吸取教训。提前感谢。

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);         
        try {
            HttpClient http_client=new DefaultHttpClient();
            URI url=new URI("http://www.mysite.com");
            HttpGet url_data=new HttpGet(url);
            HttpResponse getbackdata= http_client.execute(url_data);
            InputStreamReader in =new InputStreamReader(getbackdata.getEntity().getContent());
            BufferedReader br = new BufferedReader(in);
            StringBuffer sb=new StringBuffer("");
            String info="";
            String nl=System.getProperty("line.separator");
            while((info=br.readLine())!=null){
                sb.append(info.toString()+nl);
            }
            br.close();
            TextView output=(TextView) findViewById(R.id.display_output);
            output.setText(sb.toString());
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            Log.d("ARR_ERROR","UnknownHostException : "+e);
        }
         catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            Log.d("ARR_ERROR","ClientProtocolException : "+e);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.d("ARR_ERROR","IOException : "+e);
        }
         catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        Log.d("ARR_ERROR","URISyntaxException : "+e);
    }

}

注意:您不能在主UI线程上更新数据。

为此,您必须使用AsyncTaskThreadwithHandler,并使用runOnUiThread()方法更新数据。

你也可以这样做:

http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html

让我猜一下,您得到的是NetworkOnMainThreadException,对吧?将AsyncTask用于网络任务。不要在UI线程上执行这些操作。

相关内容

  • 没有找到相关文章

最新更新