我正在使用 ReSTLet2.3 运行 REST API 测试自动化。
新功能有一个客户 HTTP header ,用于将 token 传递给服务。
Form headers = (Form)resource.getRequestAttributes().get("org.restlet.http.headers");
if (headers == null) {
headers = new Form();
resource.getRequestAttributes().put("org.restlet.http.headers", headers);
}
...
headers.add(key, value);
代码有效。现在,客户 HTTP header 被定义为“Authorization”。上面的代码似乎没有正确传递 header 。而这不涉及challengeScheme。
我在 SoapUI 和 Postman 上测试了这个场景。两者都有效。
有人知道reSTLet支持这个吗?
最佳答案
事实上,在执行请求时,您无法使用 ReSTLet 覆盖诸如 Authorization
之类的标准 header 。
如果您想提供安全 token ,可以使用以下方法:
String pAccessToken = "some token";
ChallengeResponse challengeResponse = new ChallengeResponse(
new ChallengeScheme("", ""));
challengeResponse.setRawValue(pAccessToken);
clientResource.setChallengeResponse(challengeResponse);
这样,您将在 Authorization
header 中仅拥有 token (开头有一个空格 - 所以不要忘记修剪该值)。
关于reSTLet - 如何指定 key 为 "Authorization"的 ReSTLet 客户 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256898/