java - 使用 spring restTemplate 对 REST API 进行基本身份验证

标签 java spring resttemplate jira-rest-api

我是 RestTemplate 的新手,基本上也是 REST API 的新手。我想通过 Jira REST API 在我的应用程序中检索一些数据,但返回 401 Unauthorized。在 jira rest api documentation 上找到和文章但真的不知道如何将其重写为 java,因为该示例使用 curl 的命令行方式。我将不胜感激任何关于如何重写的建议或建议:

curl -D- -X GET -H "Authorization: Basic ZnJlZDpmcmVk" -H "Content-Type: application/json" "http://kelpie9:8081/rest/api/2/issue/QA-31"

使用spring rest模板进入java。其中 ZnJlZDpmcmVk 是用户名:密码的 base64 编码字符串。非常感谢。

最佳答案

取自 example on this site ,我认为这将是最自然的做法,通过填写 header 值并将 header 传递给模板。

这个是填表头Authorization:

String plainCreds = "willie:p@ssword";
byte[] plainCredsBytes = plainCreds.getBytes();
byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
String base64Creds = new String(base64CredsBytes);

HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + base64Creds);

这是将 header 传递给 REST 模板:

HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<Account> response = restTemplate.exchange(url, HttpMethod.GET, request, Account.class);
Account account = response.getBody();

关于java - 使用 spring restTemplate 对 REST API 进行基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920268/

相关文章:

java - 使用额外信息登录 Android 中的 Sentry

java - 使用 listener 和 DoubleProperty 获取变化量

java - 登录时Android空指针异常

java - 自定义对象的 ListView 上出现不兼容类型错误

java - 使用不同的 Spring 属性进行集成测试

spring - 集成测试 : test the Autowired annotation

java - Spring 无法解析类型为 List 的 bean 的 @Bean 依赖关系?

java - 在带有泛型参数的泛型方法中使用 Spring RestTemplate

java - SpringBoot RestTemplate 交换存在 ResponseEntity 的 ParameterizedTypeReference 转换问题

java - 如何使用 Jackson 映射动态 json 属性名称以进行 Spring Rest 模板请求