2016-06-21 3 views
2

Мне просто нужно прикрепить параметры запроса к исходящему запросу. (Java EE 7.0, JAX-RS 2.0)Присоединение параметров запроса в ClientRequestFilter

В частности, в настоящее время я использую клиент RESTeasy ver 3.0.14, поэтому я делаю свои звонки с помощью причудливой системы интерфейса-прокси. Я пытался создать что-то вроде этого:

myapplication/api/path?timestamp=000

с:

@Provider 
public class MyRequestFilter implements ClientRequestFilter { 

    @Context 
    private HttpServletRequest servletRequest; 

    public void filter(ClientRequestContext requestContext) throws IOException { 

     servletRequest.getParameterMap().put("timestamp", new String[]{ 
       String.valueOf(new Date().getTime()) 
     }); 

    } 
} 

Я уверен, что я регистрировал его client.register(MyRequestFilter.class), а также. Не стесняйтесь задавать вопросы. Благодаря!

+0

Причина, по которой я отмечен как дубликат, заключается в том, что вы используете неправильный фильтр. Не имеет никакого отношения к параметрам запроса или заголовкам. Вы используете фильтр сервера, когда вы должны использовать клиентский фильтр (как описано в дубликате сообщения) –

+0

Если вы не можете понять, как это сделать с правильным фильтром, пожалуйста, обновите сообщение с попыткой сделать это с клиентским фильтром, и я буду рад снова открыть вопрос. –

+0

OHH небольшой вид, lemme сделать некоторые испытания супер быстро. Спасибо, у меня есть солоноватый XD, мой плохой. –

ответ

3

Кредит @peeskillet -

Перестроить URI из requestContext, как это:

requestContext.setUri(UriBuilder.fromUri(requestContext.getUri()).queryParam("key", value).build()); 

Теперь вы можете увидеть новый параметр запроса с

requestContext.getUri().toString(); 

Снова убедитесь, что вы регистрируете его при создании клиента REST

client.register(MyRequestFilter.class); 
+0

Perfecto –

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