2014-09-22 3 views
1

Попытка добавить заголовки к каждому запросу, который получает моя система. Подключенный входящий HTTP-перехватчик запускается, но не добавляет заголовок.HTTP-запрос перехватчика - спокойный веб-сервис с использованием cxf

package com.client.interceptors; 

    import java.util.Collections; 
    import java.util.List; 
    import java.util.Map; 

    import org.apache.cxf.interceptor.Fault; 
    import org.apache.cxf.message.Message; 
    import org.apache.cxf.phase.AbstractPhaseInterceptor; 
    import org.apache.cxf.phase.Phase; 

    public class ClientInterceptor extends AbstractPhaseInterceptor<Message> { 
     public ClientInterceptor() { 
      super(Phase.PRE_INVOKE); // Put this interceptor in this phase 
      System.out.println("inside constructor"); 
     } 

     public void handleMessage(Message msg) throws Fault { 
      // process the message 

      System.out.println("inside interceptor"); 
      Map<String, List> headers = (Map<String, List>) msg 
      .get(Message.PROTOCOL_HEADERS); 

      headers.put("token", 
      Collections.singletonList("abcd1234xyz56sa")); 

      msg.put(Message.PROTOCOL_HEADERS, headers); 

     } 
    } 

Как это можно достичь?

+0

но вы звоните в спокойный webservice? – Krishna

+0

да, это простая служба GET, и я вызываю из браузера – skonka

+0

, если вы просто хотите, чтобы он был вызван из браузера, тогда вы можете использовать инструмент для того же na Poster :) – Krishna

ответ

0

Ну, у меня есть одно решение для того же. Посмотрите это. это может помочь.

Client client = Client.create(); 
    WebResource webResource =client.resource("URL"); 

    MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl(); 
    queryParams.add("json", js); //set parametes for request 

    appKey = "Addkey " + appKey; // appKey is unique number 

    //Get response from RESTful Server get(ClientResponse.class); 
    ClientResponse response = null; 
    response = webResource.queryParams(queryParams) 
          .header("Content-Type", "application/json;charset=UTF-8") 
          .header("Authorization", appKey) 
          .get(ClientResponse.class); 

    String jsonStr = response.getEntity(String.class); 
+0

Спасибо, но это снова связывает его с клиентом. То, что я хочу сделать, это добавить его в конец сервиса. Он должен быть добавлен независимо от того, что мой клиент, будь то клиент java-клиента или аякс-вызов из браузера. – skonka

+0

означает, что вам нужно добавить его с клиентской стороны, я имею в виду, когда адрес U-адреса не так ли? – Krishna

+0

Добавление на сайт клиента не должно быть проблемой. Я хочу иметь возможность добавлять на серверную сторону независимо от клиента/запроса. Чтобы дать фон, я в основном создаю макет службы отдыха, которая ищет эти заголовки, поэтому предпочитает добавлять на конец службы, а не на стороне клиента. – skonka

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