Android 尝试启动 HttpURLConnection 函数后应用崩溃

Android app crash after trying to launch a HttpURLConnection function

我正在尝试创建到 servlet 的连接并发送一个 Json 文件,这是应用程序崩溃的代码部分:

 findViewById(R.id.main_login_button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finalJson=createJfile();
            try {
                HTTPConnection(finalJson);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

函数如下:

public void HTTPConnection(String Json) throws IOException{
    URL url;
    url = new URL("http://192.168.0.136:8080/ProgettoProva/AndroidApp");

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
    conn.setRequestProperty("Accept", "text/json");
    OutputStreamWriter writer =new OutputStreamWriter(conn.getOutputStream());
    writer.write(Json);
    writer.close();
    conn.disconnect();

}

在LogCat中,什么也没有显示。刚启动功能就崩溃了

您应该在 AsyncTask 中执行网络代码。 Android 不允许在主线程中联网。

private class MyAsyncTask extends AsyncTask<Void, Void, String> {

    @Override
    protected String doInBackground(Void... params) {
        //Do network code here
    }

    @Override
    protected void onPostExecute(String result) {

    }

    @Override
    protected void onPreExecute() {}

    @Override
    protected void onProgressUpdate(Void... values) {}
}

执行

new LongOperation().execute();