我有AsyncHttpServer在我的Android设备上工作。我有这样的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();
}
}
});
服务器为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/plain
正文包含正如我所期望的那样,使用cURL设置JSON数据。
有谁知道为什么会这样,我怎样才能让它与Content-Type: application/json
一起使用?
答案 0 :(得分:0)
当我使用Volley库时,我遇到了同样的问题。使用以下方法解决了这个问题:
&#34;应用/ JSON;字符集= UTF-8&#34 ;;
作为正文内容类型。