首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java HttpClient请求返回403状态,而postman返回预期响应

Java HttpClient请求返回403状态,而postman返回预期响应
EN

Stack Overflow用户
提问于 2021-02-09 17:53:23
回答 2查看 105关注 0票数 0

尝试向邮递员提出要求,得到了所需的答复。

用于发出相同请求的java代码如下: fails,状态为403。

代码语言:javascript
运行
复制
String url = "https://steamcommunity.com/inventory/76561198865293952/440/2?l=english&count=5000";
String cookiesString = "sessionid=" + generateSessionId() + ";steamCountry=IN%7Ce744269b3c4e531facb33ecaff29eb44";

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest
                .newBuilder()
                .GET()
                .header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36")
                .header("Accept", "*/*")
                .header("Cookie", cookiesString)
                .uri(URI.create(url))
                .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.statusCode()); //prints 403
System.out.println(response.body()); // prints       �+�� O��%   
代码语言:javascript
运行
复制
/**
* Generates a Steam Session Id.
* @return sessionId.
*/
public static String generateSessionId() {
   return new BigInteger(96, new Random()).toString(16);
}

邮递员请求根本不需要任何标头(甚至不需要User-Agent,只保留Host,不需要cookie)来获得所需的响应。甚至在浏览器中导航到链接都会显示json响应。

PostMan request ScreenShot

Postman Request Image with cookies

谢谢。祝你今天过得愉快。

EN

回答 2

Stack Overflow用户

发布于 2021-02-09 18:35:48

我非常确定,产生403响应的原因是postman中的2个cookie,而不是java代码中的2个cookie。

Postman是一个google chrome插件,所以当你使用chrome进行连接时,也许你会将cookie存储在缓存中。

您还需要将它们添加到java代码中。

票数 1
EN

Stack Overflow用户

发布于 2021-02-09 23:36:52

首先,感谢您的回答和回复。

因此,我发现我试图访问的清单被设置为仅对朋友可见,因此响应为403。因此,它确实适用于设置为公共的库存。

对不起,我应该先检查一下的。

我仍然不明白的是,邮递员桌面客户端是如何获得预期的响应的?我知道chrome能够获得清单是因为我有活跃的steam登录和cookie,这些cookie应该已经发送,但邮递员请求除了sessionid和country之外没有任何cookie。如果有人能解释这是怎么发生的,那真的会对我有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66116589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档