2016-02-10 1 views
2

У меня проблема с ClientResource. Когда я инициализирую, атрибуты: null.Неверные атрибуты ClientResource

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

clientResource.getRequestAttributes() производит null.

Это создает проблему для меня, чтобы добавить пользовательские заголовки к моему звонку.

Btw, есть причина, по которой clientResource.getHeaders нет на ClientResource API? Я работаю с Restlet версии 2.3.1 вот мой ПОМ:

<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> 

ответ

2

Вы можете просто использовать следующий код, чтобы добавить пользовательский заголовок:

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

Редактировать

Если для версии используемого вами Restlete не существует метода 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"); 
+0

Дело в том, что getHeaders() не существует – Igor

+0

Какую версию Restlet вы используете? Этот метод был представлен в последних версиях ... Я отредактировал свой ответ с помощью кода, который будет использоваться в этом случае. –

+0

Мое решение было именно так, как вы писали сейчас :) Как я писал в своем вопросе, я использую 2.3.1 – Igor

Смежные вопросы