Android Studio - Http Post - Json - 响应错误错误请求

时间:2013-11-13 15:53:10

标签: java android json http-post

我的源代码:

    final Thread t = new Thread() {

        public void run() {
            Looper.prepare();
            HttpClient client = new DefaultHttpClient();
            HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
            HttpResponse response;
            JSONObject obj = new JSONObject();


            try {
                HttpPost post = new HttpPost("http://pc.dyndns-office.com/mobile.asp");

                obj.put("Model", ReadIn1);
                obj.put("Product", ReadIn2);
                obj.put("Manufacturer", ReadIn3);
                obj.put("RELEASE", ReadIn4);
                obj.put("SERIAL", ReadIn5);
                obj.put("ID", ReadIn6);
                obj.put("ANDROID_ID", ReadIn7);
                obj.put("Language", ReadIn8);
                obj.put("BOARD", ReadIn9);
                obj.put("BOOTLOADER", ReadIn10);
                obj.put("BRAND", ReadIn11);
                obj.put("CPU_API", ReadIn12);
                obj.put("DISPLAY", ReadIn13);
                obj.put("FINGERPRINT", ReadIn14);
                obj.put("HARDWARE", ReadIn15);
                obj.put("UUID", ReadIn16);

                StringEntity se = new StringEntity(obj.toString());
                se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
                post.setEntity(se);
                post.setHeader("host", "http://pc.dyndns-office.com/mobile.asp");

                response = client.execute(post);

                if (response != null) {
                    InputStream in = response.getEntity().getContent();
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

            Looper.loop();
        }
    };

    t.start();
 }
}

我想将Json对象发送到网站。据我所见,我设置了标题,但我仍然得到这个例外,有人可以帮助我吗?

(我正在使用Android-Studio) __

编辑:我不再有任何例外,但我仍然没有收到json数据包。

当我手动调用网站时,我会收到一个日志文件条目。

有谁知道,出了什么问题?

EDIT2: 当我调试时,我得到响应“HTTP / 1.1 400错误请求”我确定这不是一个权限问题。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

StringEntity(String)替换为ByteArrayEntity(stringValue.getBytes("UTF8"));并使用它。

喜欢:

 httpPost.setEntity(new ByteArrayEntity(params.toString().getBytes("UTF8")));
 HttpResponse response = httpClient.execute(httpPost);

其中params是map的jsonObject包含输入参数。

答案 1 :(得分:0)

尝试:

httpPost.setEntity(new ByteArrayEntity(jsonObject.toString().getBytes("UTF-8")));