httpclient获取返回结果中文变问号

发布于 2022-09-05 22:53:35 字数 1975 浏览 19 评论 0

public static String saveLog(JSONObject jsonParams) throws IOException {
        
        logger.info("save log params : " + jsonParams.toString());
        logger.debug(Instant.now().toString());

        CloseableHttpClient httpClient = HttpClients.createDefault();

        HttpPost httpPost = new HttpPost("http://localhost:8080/log/httpservice/saveLog");
        httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
        httpPost.addHeader("Accept", "application/json");
//        httpPost.addHeader("Accept-Language", "zh-CN");

        StringEntity requestEntity = new StringEntity(jsonParams.toString(), "utf-8");
        requestEntity.setContentEncoding("UTF-8");
        requestEntity.setContentType("application/json; charset=utf-8");
        httpPost.setEntity(requestEntity);

        CloseableHttpResponse httpResponse = httpClient.execute(httpPost);

        String result = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
        
        httpPost.releaseConnection();
        httpClient.close();
        
        logger.info("save log result : " + result);
        logger.debug(Instant.now().toString());

        return result;
    }

功能就是调用一个服务端的http接口记录一次日志信息,经设置服务端可以获取到中文参数并处理,现在的问题是客户端程序这边获取到的返回结果中包含的中文结果反馈变成了问号。
这是服务端控制台打印结果

result = {"success":true,"message":"用户操作日志记录完成","detail":""}

这是客户端获取到的结果打印情况

save log result : {"success":true,"message":"??????????","detail":""}

服务端接收请求处理代码

    @ResponseBody
    @RequestMapping(value = "/saveLog", method = RequestMethod.POST)
    public String saveLog(@RequestBody String requestBody) {
        logger.info("requestBody = " + requestBody);
        JsonObject jsonObject = new JsonParser().parse(requestBody).getAsJsonObject();
        
        String result = this.save(jsonObject);
        logger.info("result = " + result);
        return result;
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

百变从容 2022-09-12 22:53:35

又是自问自答,好忧伤。难道社区里的小伙伴都没有碰到过类似的问题嘛!
其实代码没有任何问题,貌似是maven配置引入的jar包有问题。重点在于,maven配置本身没有问题,此时无论怎样重新构建项目都没有用,包括clean project, maven update等操作,都是没效果的,只有把自己的maven配置目录m2文件夹中该项目会用到的所有jar包全部删掉,然后让eclipse重新下载一次这些jar包,就可以用了。
这已经是我第二次遇到一样删maven m2目录的情况了,略微有点心疼自己

黎歌 2022-09-12 22:53:35

我的情况跟你一样我是最终这样解决了
clipboard.png

生生不灭 2022-09-12 22:53:35

遇到了一样的问题,感觉这和maven没关系吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文