reSTLet - 如何指定 key 为 "Authorization"的 ReSTLet 客户 HTTP header

标签 restlet

我正在使用 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/

相关文章:

tomcat - ReSTLet css 和 javascript 文件

java - ReSTLet并发问题

java - 常见 Web 服务中的数据模型

java - 在 ReSTLet 中向由 ClientResource 包装的请求添加 header

java - ReSTLet 发送客户端证书

java - 使用HttpClient在war文件之间通信

java - 是否有用于创建 XHTML 文档的 Java API?

java - 使用 REST 发送文件?

java - 如何让 GWT 2.0 和 ReSTLet 2.0 很好地发挥作用

java - ReSTLet:应用程序启动前的初始化代码