发送到服务器时缺少JSON数据

问题描述:

当我解析JSON对象时,它会被轻松解析并以正确的格式解析。但只要我将相同的东西发送到服务器端,值就会丢失。发送到服务器时缺少JSON数据

JSONArray check0 = new JSONArray(); 
    JSONArray check1 = new JSONArray(); 
    JSONArray check2 = new JSONArray(); 

    check0.put(v11); 
    check0.put(v12); 
    check0.put(v13); 

    check1.put(c11); 
    check1.put(c12); 
    check1.put(c13); 

    check4.put(t11); 
    check4.put(t12); 
    check4.put(t13); 


    draft.put("check2",id11); 
    draft.put("check3",t11); 

    draft.put("check0",check0); 
    draft.put("check1",check1); 
    draft.put("check4",check4);  

其中v11,v12 ....... t12,t13是字符串变量。

我的用于发送数据的代码:

URL url = new URL("http://10.0.2.2:8080/initial"); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("POST"); 
connection.setRequestProperty("USER-AGENT", "Mozilla/5.0"); 
connection.setRequestProperty("ACCEPT-LANGUAGE", "en-US,en;0.5"); 
connection.setDoOutput(true); 
DataOutputStream dStream = new 
DataOutputStream(connection.getOutputStream()); 
System.out.println(draft.toString()); 
dStream.writeBytes(draft.toString()); 

的System.out:

{"Check1":["5","4","4"],"Check0":["6","44","4"],"Check2":"17082017123406","Check4":"1228123682","Check3":["4","4","4"]} 

代码以接收发布请求:

app.post('/initial', function(req, res){ 

console.log("POST received: "+ JSON.stringify(req.body)); 

res.end("cool"); 
}); 

控制台输出 POST接收:

{"{\"Check1\":":{"\"5\",\"4\",\"4\"":{"\"6\",\"44\",\"4\"":{"\"4\",\"4\",\"4\"":""}}}}

+2

请分享一下你的代码,以便有人能判断错误。 – Nitesh

+0

我已经更新了代码,请帮我解决。 –

+0

请分享您创建请求json的代码。 – Nitesh

尝试使用以下

con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 

private JSONObject uploadToServer() throws IOException, JSONException { 
     String query = "https://example.com"; 
     String json = "{\"key\":1}"; 

     URL url = new URL(query); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setConnectTimeout(5000); 
     conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 
     conn.setDoOutput(true); 
     conn.setDoInput(true); 
     conn.setRequestMethod("POST"); 

     OutputStream os = conn.getOutputStream(); 
     os.write(json.getBytes("UTF-8")); 
     os.close(); 

     // read the response 
     InputStream in = new BufferedInputStream(conn.getInputStream()); 
     String result = org.apache.commons.io.IOUtils.toString(in, "UTF-8"); 
     JSONObject jsonObject = new JSONObject(result); 


     in.close(); 
     conn.disconnect(); 

     return jsonObject; 
}