使用JoddHttp put请求发送带有.body()的JSON会破坏中文文本

时间:2017-11-21 10:30:54

标签: java jodd

我的方法如下:

public String submitMaterials(String url,JSONObject params) {
    return HttpRequest
        .create("put", url)
        .mediaType(MediaType.APPLICATION_JSON_UTF8_VALUE)
        .body(params.toJSONString())
        .send()
        .bodyText();
}

我导入的参数: enter image description here

enter image description here

请帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

我这样做,这是对的:

public String submitMaterials(String url,JSONObject params) {
     return HttpRequest
           .create("put", url)
           .mediaType("application/json;charset=UTF-8")
           .bodyText(params.toJSONString(),“UTF-8”)
           .contentType("application/json;charset=UTF-8")
           .send();
 }

答案 1 :(得分:0)

不要使用mediaType,它只是 ContentType的一部分,它不会设置编码。所以只需使用contentType()代替:

return HttpRequest
        .create("put", url)
        .contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)
        .body(params.toJSONString())
        .send()
        .bodyText();
}

请注意,您可以使用发送媒体类型和内容的contentType的双参数版本:

        .contentType("application/json", "UTF8")

mediaType方法的写版本将被移除,以免混淆人们。请参阅javadoc