ClientResource 空属性
ClientResource null attributes
我对 ClientResource
有疑问。我初始化的时候属性是null
.
String url = "..."
ClientResource clientResource = new ClientResource(url);
clientResource.getRequestAttributes()
产生 null
.
这让我无法在调用中添加自定义 headers。
顺便说一句,clientResource.getHeaders
不在 ClientResource
API 是有原因的吗?我正在使用 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>
您可以简单地使用以下代码添加自定义 header:
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");
我对 ClientResource
有疑问。我初始化的时候属性是null
.
String url = "..."
ClientResource clientResource = new ClientResource(url);
clientResource.getRequestAttributes()
产生 null
.
这让我无法在调用中添加自定义 headers。
顺便说一句,clientResource.getHeaders
不在 ClientResource
API 是有原因的吗?我正在使用 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>
您可以简单地使用以下代码添加自定义 header:
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");