使用弹簧靴时出现403,但与邮递员配合良好[重复]

Posted

技术标签:

【中文标题】使用弹簧靴时出现403,但与邮递员配合良好[重复]【英文标题】:403 when using spring boot, but works well with postman [duplicate] 【发布时间】:2018-04-26 15:28:34 【问题描述】:

我正在用 url 上的邮递员进行 api 调用:

https://cex.io/api/order_book/BTC/USD

普通的 GET 没有标题没有参数什么都没有。但与 java 相同:

RestTemplate rt = new RestTemplate();
rt.getForObject("https://cex.io/api/order_book/BTC/USD", String.class);

让我 403。问题出在哪里?

【问题讨论】:

Postman 返回的 HTTP 代码是什么?应该是一样的。 来自他们的api documentation - 他们确实有速率限制,将您限制为每 10 分钟 600 个请求。可能是你在测试期间超过了。 我离 600 还差得很远,邮递员的 http 代码是 200ok 【参考方案1】:

RestTemplate 设置“User-Agent: Java_version”标头,您尝试查询的站点似乎拒绝使用该用户代理进行访问。

您可以显式设置用户代理,而不是默认设置,例如:

    HttpHeaders headers = new HttpHeaders();
    headers.set("User-agent", "SomeUserAgent");
    HttpEntity<String> entity = new HttpEntity<String>(headers);

    RestTemplate rt = new RestTemplate();
    String result = rt.exchange("https://cex.io/api/order_book/BTC/USD", HttpMethod.GET, entity, String.class).getBody();

【讨论】:

这应该被接受为答案 是的,这就是问题所在!

以上是关于使用弹簧靴时出现403,但与邮递员配合良好[重复]的主要内容,如果未能解决你的问题,请参考以下文章

keycloak CORS 过滤器弹簧靴

弹簧靴 |在类路径资源中定义名称为“entityManagerFactory”的 bean 创建错误

使用 Spring-Data 配置 MongoDb 时出现异常

尝试在 Web API 请求上检索 Azure Blob 时出现 403 错误

弹簧靴暴露ID [重复]

带有弹簧靴的keycloak openid单次注销