我正在尝试重新创建一个REST调用,我在Java中使用Ready-API但有问题。
如果我在ReadyAPI中发出GET请求并使用UI中的AUTH选项卡,并使用用户名和密码将其设置为Basic,并选中“USE GLOBAL PREFERENCE”,则它可以正常运行。但是,如果我选择“先发制人验证”,它就会失败。
同样在readyAPI中,如果我使用base64编码的字符串插入Authorization标头,而不是使用“Auth”选项卡,它也会失败。这适用于我尝试与之交谈的其他服务器,但不适用于此服务器。
我试图通过授权标题找出失败的原因。因为我试图用java和restTemplate进行相同的调用。
类似的东西:
String plainCreds = username + ":" + password;
byte[] plainCredsBytes = StringUtils.getBytesUtf8(plainCreds);
String base64Creds = Base64.encodeBase64String(plainCredsBytes);
httpHeaders = new HttpHeaders();
httpHeaders.add(HttpHeaders.AUTHORIZATION, "Basic " + base64Creds);
当使用带有“使用全局首选项”的Auth选项卡以使其成功时,ReadyAPI的做法有何不同?我怎么能用Java做到这一点?
答案 0 :(得分:0)
“basic”的身份验证方案需要使用方案名称的适当大小写传递:
httpHeaders.add(HttpHeaders.AUTHORIZATION, "Basic " + base64Creds);
https://tools.ietf.org/html/rfc7617第2节“基本”认证方案