Java 这个代码有什么问题?每当我尝试单击按钮时,我的应用程序就会停止响应?这是一个post请求代码

Java 这个代码有什么问题?每当我尝试单击按钮时,我的应用程序就会停止响应?这是一个post请求代码,java,android,post,Java,Android,Post,这是我的邮政申请代码。请帮我调试这个。谢谢我可以运行我的应用程序,但它不会显示错误 public void ibutton4Click() { { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("10.0.0.1/cgi-bin/ForwardPress.cgi"); t

这是我的邮政申请代码。请帮我调试这个。谢谢我可以运行我的应用程序,但它不会显示错误

public void ibutton4Click()
    {
           {
                HttpClient client = new DefaultHttpClient();
                HttpPost post = new HttpPost("10.0.0.1/cgi-bin/ForwardPress.cgi");
                try {

                  HttpResponse response = client.execute(post);
                  BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
                  String line = "";
                  while ((line = rd.readLine()) != null) {
                    System.out.println(line);
                  }

                } catch (IOException e) {
                    startActivity(new Intent(this,MainActivity.class));
                }
              }
    }

有关NetworkOnMainThread错误及其原因的详细信息,
1.
2.
3.

要在单独的线程中获取数据

1.编写自定义
Asynctasks


2.使用AsyncHttpClient:
在这里,您可以获得处理响应的
onSuccess
onFailure
方法


选择2。如果您只想获取数据而不做任何其他事情,并对其进行处理或保存,则更好。同样,您需要首先解析响应

您正在主UI线程上执行一项长期任务。你必须在后台做这些事情,这样UI才能在后台继续工作?比如说把它放在一个异步任务中?我不太熟悉Android的具体实现,但是是的,乍一看,它和你想要的完全一样。AsyncTask允许正确且轻松地使用UI线程。此类允许在UI线程上执行后台操作和发布结果,而无需操纵线程和/或处理程序。