2012-05-16 4 views
1

Apache Camel에서 URL을 호출하고 있습니다.
URL 인코딩 오류

나는
http://localhost:8080/rest/api/2/search?jql=Name~ABC

로 헤더 "Exchange.HTTP_URI"을 설정하고있어하지만 ~로 변환되는 이유는 오류가 http://localhost:8080/rest/api/2/search?jql=Name<b>%257E ABC

를 호출
말하는 제공 % 257E

% 7E는 ~의 코드입니다. 와 25 %는

내가 "Exchange.HTTP_QUERY는"이 실행되는 헤더를 설정 %
에 대한 코드입니다하지만 난 볼 때,
실제로 단지 http://localhost:8080/rest/api/2/search을 실행하고 응답을 반환합니다.

답변

1

은 다음 코드는 완벽하게 잘 작동합니다

public class HttpQueryTest 
{ 
    public static void main(String[] args) throws Exception { 

     CamelContext camelContext = new DefaultCamelContext(); 
     camelContext.addRoutes(new RouteBuilder() { 
      @Override 
      public void configure() throws Exception { 
       from("direct:start") 
       .setHeader(Exchange.HTTP_URI, simple("http://google.com?q=Name~ABC")) 
         .to("http://localhost/noSuchUrl").to("log:OUT"); 
      } 
     }); 
     camelContext.start(); 
     camelContext.createProducerTemplate().sendBody("direct:start","start"); 

     TimeUnit.SECONDS.sleep(5); 
    } 
} 

내가 로그에서 볼 수 있듯이 :

12:59:11.230 [main] DEBUG o.a.c.component.http.HttpProducer - Executing http GET method: http://google.com?q=Name~ABC 
12:59:11.650 [main] DEBUG o.a.c.component.http.HttpProducer - Http responseCode: 200 

을 당신이이 Exchange.HTTP_URI 헤더 값을 사용하여 대상 URL을 설정 볼 수 있듯이. 그런 다음 사용자와 유사한 매개 변수를 사용하여 Google 검색어를 만듭니다.

재현 할 수 있도록 문제를 나타내는 스 니펫을 제공해 주시겠습니까?