我是 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/