ClientResource null属性

时间:2016-02-10 09:55:11

标签: java restlet

ClientResource存在问题。初始化时,属性为null

String url = "..."
ClientResource clientResource = new ClientResource(url);

clientResource.getRequestAttributes()生成null

这会让我在调用时添加自定义标题。

顺便说一句,有clientResource.getHeaders API出现ClientResource的原因?我正在使用 Restlet 版本2.3.1,这是我的pom:

<repositories>
  <repository>
    <id>maven-restlet</id>
    <name>Public online Restlet repository</name>
    <url>http://maven.restlet.org</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>org.restlet.jse</groupId>
    <artifactId>org.restlet.ext.json</artifactId>
    <version>${restlet.version}</version>
  </dependency>
</dependencies>

1 个答案:

答案 0 :(得分:2)

您只需使用以下代码添加自定义标题:

ClientResource cr = new ClientResource("http://...");
cr.getRequest().getHeaders().add("MyCustomHeader", "some value");

修改

如果您使用的Restlet版本不存在getHeaders方法,请将其替换为以下代码:

Series<Header> headers = (Series<Header>) cr.getAttributes().get(
            HeaderConstants.ATTRIBUTE_HEADERS);
if (headers == null) {
    headers = new Series<Header>(Header.class);
    cr.getAttributes().put(HeaderConstants.ATTRIBUTE_HEADERS, headers);
}

headers.add("MyCustomHeader", "some value");