0

我有AsyncHttpServer在我的 Android 设备上工作。我有 POST 设置的请求回调方法,如下所示:

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();
            }
        }
    });

服务器在哪里new AsyncHttpServer(),映射器在哪里new ObjectMapper()

我在以 开头的行有断点List<T>,我正在尝试使用 cURL 将一些数据发布到服务器,如下所示:

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

出于某种原因,当我使用Content-Type设置为application/json request.getBody()返回发布时null,但如果我将内容类型更改为text/plainbody 包含 JSON 数据集和 cURL,正如我所期望的那样。

有谁知道为什么会发生这种情况,我怎样才能让它工作Content-Type: application/json

4

1 回答 1

0

我在使用 Volley 库时遇到了同样的问题。问题已通过使用解决:

“应用程序/json;字符集=utf-8”;

作为正文内容类型。

于 2016-05-23T03:40:31.727 回答