0

私のソースコード:

    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 オブジェクトを Web サイトに送信したいと考えています。私が見る限り、ヘッダーを設定しましたが、それでもこの例外が発生します。誰か助けてもらえますか?

(私は Android-Studio を使用しています) __

編集: もう例外は発生しませんが、まだ json パケットを受信しません。

Web サイトを手動で呼び出すと、ログ ファイルのエントリが表示されます。

誰が知っていますか、何が悪いのですか?

Edit2:デバッグすると、応答として「HTTP/1.1 400 bad request」が表示されます。これはパーミッションの問題ではないと確信しています。何か案は?

4

2 に答える 2

0

に置き換えStringEntity(String)ByteArrayEntity(stringValue.getBytes("UTF8"));使用します。

お気に入り :

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

ここで、params はマップの jsonObject で、入力パラメーターが含まれています。

于 2014-07-04T10:29:06.487 に答える