我正在尝试创建与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中,没有显示任何内容。该应用程序在启动该功能时崩溃了。
答案 0 :(得分:1)
您应该在f_name
中执行网络代码。 Android不允许在主线程中使用网络。
AsyncTask
执行
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) {}
}