gpt4 book ai didi

java - 如何在Java中获取没有转义序列的post请求的响应正文?

转载 作者:行者123 更新时间:2023-12-02 05:03:01 25 4
gpt4 key购买 nike

我正在尝试使用以下代码将 HttpResponse 的响应正文转换为字符串:

HttpGet request = new HttpGet(url);
request.setHeader("Accept", "application/json");
response = client.execute(request);
EntityUtils.toString(response.getEntity(), standardCharsets.UTF_8.displayName());

转换为字符串后的预期响应如下:

{"errors": ["permission denied"]}

这段代码直到最近都运行良好。但现在响应正文以某种方式被修改为:

{"errors":["1 error occurred:\n\t* permission denied\n\n"]}

我不明白“发生 1 个错误”消息是如何插入到响应正文中的,因为 Postman 中同一调用的响应给了我适当的响应,即:

{"errors": ["权限被拒绝"]}

我已经彻底检查了代码,并确信“发生 1 个错误”消息不是手动插入的。

编辑:

这些是来自 Postman 的响应 header :

cache-control →no-store
content-length →33
content-type →application/json
date →Thu, 30 May 2019 06:52:33 GMT
status →403

这些是 HttpClient 调用的响应 header :

Cache-Control: no-store
Content-Type: application/json
Date: Thu, 30 May 2019 09:06:21 GMT
Content-Length: 60

唯一的区别是不打印状态代码。但通过 response.getStatusLine().getStatusCode() 检查状态代码也会产生 403。

最佳答案

看起来您正在使用 Apache HttpClient,它不会以这种方式修改响应。这肯定是服务器生成的响应。检查 Postman 中的请求配置,看看是否存在任何可能改变服务器行为的其他 header 。

关于java - 如何在Java中获取没有转义序列的post请求的响应正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56374811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com