gpt4 book ai didi

java - 通过 Spring Boot 调用 AirTable Rest API 返回 401

转载 作者:行者123 更新时间:2023-12-02 10:39:32 24 4
gpt4 key购买 nike

我可以成功调用AirTable使用我的 API key 从 PostMan 和 Intellij 的内置 Rest 客户端获取 API。当我尝试使用具有相同 URL 和 header 的 Spring 的 RestTemplate 时,我收到 401

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized

我的 RestTemplate 代码是:

RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + apiKey);
HttpEntity<String> entity = new HttpEntity<>("parameters", headers);
return restTemplate.getForObject(URL, String.class, entity);

通过 Rest 客户端(例如 PostMan 或 Intellij 的内置客户端)提供完全相同的 URL 和 header (Bearer API key ),我会收到 200 响应以及从 AirTable 返回的预期数据。

上面代码中的 RestTemplate 我做错了什么?

最佳答案

您使用的 getForObject 的重载采用对象的可变参数作为最后一个参数,这些值用于替换第一个参数的变量,该参数应该是 URI 模板。这意味着您设置的 header 并未按照您希望的方式使用。

您应该使用正确的 exchange 重载(采用 HttpEntity),它将按预期运行。

另一种选择是使用拦截器(有一个用于基本身份验证的拦截器,您可以将其用作引用),这样您就不必总是将身份验证显式地放入请求中。

关于java - 通过 Spring Boot 调用 AirTable Rest API 返回 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53026194/

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