0

Android アプリから URL に json を POST しようとしています。ここで見つけた関連するすべての回答を調べましたが、何をしてもステータスコード406が表示されます。これは、サーバーが送信している形式を受け入れていないことを意味しますが、何が問題なのかわかりません私がやっている。

関連するコードは次のとおりです。

        @Override
        protected HttpResponse doInBackground(Void... params) {
        HttpParams httpParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
        HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
        HttpClient httpclient = new DefaultHttpClient(httpParams);
        HttpPost httpPost = new HttpPost(URL);
        HttpResponse httpResponse = null;

        httpPost.setHeader("Content-Type", "application/json");

        Log.w("json: ", formJSON().toString());

        try {
            StringEntity se = new StringEntity(formJSON().toString());
            se.setContentEncoding("UTF-8");
            se.setContentType("application/json");
            httpPost.setEntity(se);
            httpResponse = httpclient.execute(httpPost);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return httpResponse;
    }

formJSON() メソッドによって形成された JSON を JSONLint で確認したところ、有効でした。ところで、送信する予定の json は { String, String, String, String and String[] } です

編集:

私は自分で答えを見つけました。テスト中に空の文字列を送信していたようで、POST は 406、「受け入れられない形式」でした。すべてを手動で入力しようとすると、200が返されました。

4

0 に答える 0