0

Android デバイスでAsyncHttpServerが動作しています。次のように設定された POST の reqquest コールバック メソッドがあります。

server.post(pattern, new HttpServerRequestCallback() {
        @Override
        public void onRequest(AsyncHttpServerRequest request, 
                              AsyncHttpServerResponse response) {
            try {
                List<T> entityList = mapper.readValue(request.getBody().get().
                                     toString(), typeReference);
                for (T newEntity : entityList) {
                    newEntity.save();
                }
                response.code(200);
                response.end();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

server はnew AsyncHttpServer()、 mapper はnew ObjectMapper()

で始まる行にブレークポイントがList<T>あり、次のように cURL を使用してサーバーにデータを POST しようとしています。

curl -H "Content-Type: application/json" -X POST -d '[{"_id":"767da7ae-
7826-4f67-853a-23f1d69b5f39","label":"L"}]' http://myserver:5000/test

何らかの理由で、set を return に設定して投稿しているときに、Content-Typeコンテンツタイプをbody に変更すると、期待どおりに cURL を含む JSON データ セットが含まれますapplication/json request.getBody()nulltext/plain

なぜこれが起こるのか、どうすれば動作させることができContent-Type: application/jsonますか?

4

1 に答える 1

0

Volley ライブラリを使用していたときに同じ問題が発生しました。問題は次を使用して解決されました:

"アプリケーション/json; charset=utf-8";

本文のコンテンツ タイプとして。

于 2016-05-23T03:40:31.727 に答える