2012-04-10 4 views
1

GWT RPC를 사용하여 클라이언트와 서버간에 통신합니다. 서버 측에서 브라우저의 날짜를 읽을 수 있기를 원합니다. ServiceDefTarget 클래스의 setRpcRequestBuilder를 사용하여 요청을 계발하고 원하는 헤더를 추가하고 싶습니다. 클라이언트 측에GWT RequestBuilder 클라이언트 날짜 설정 HTTP 날짜 POST 헤더

내가 사용 :

private static final RpcRequestBuilder rpcReqBuilder = new RpcRequestBuilder() { 

    @Override 
    protected RequestBuilder doCreate(String serviceEntryPoint) { 

     RequestBuilder builder = super.doCreate(serviceEntryPoint); 
     builder.setHeader("Date1", new Date().toString()); 
     return builder; 

    } 
}; 

...... 

((ServiceDefTarget) greetingService).setRpcRequestBuilder(rpcReqBuilder); 

//rpc call 
greetingService.greetServer(.........) 

을 내가 할 서버 측에서 모든 기본 헤더 중

Date1: Tue Apr 10 12:19:28 BST 2012 

확인 인쇄

HttpServletRequest request = this.getThreadLocalRequest(); 
    Enumeration<?> enumeration = request.getHeaderNames(); 
    while (enumeration.hasMoreElements()) { 
     String name = (String) enumeration.nextElement(); 
     String value = request.getHeader(name); 
     System.out.println(name + ": " + value); 
    } 

, 이 잘 작동하지만 "날짜"헤더를 설정하려고하면 다음 서버쪽에 표시되지 않습니다. 왜 그런가요? 누구든지 도움을 줄 수 있습니다. 나는 매우 도움이 될 것이다. :)

답변

3

Date는 HTTP의 predefined header이며, 정의에 의해, 임의의 값으로 cannot let you set itXMLHttpRequest (GWT의 RequestBuilder 뒤의 것). 자신의 헤더 공예 때

어쨌든

, 당신은 MyApp-Date 또는 X-MyApp-Date 같은 헤더, 뭔가를 추가 네트워크에있는 다른 것들과의 충돌을 피하기 위해 접두사를 추가해야합니다 (GWT는 GWT-RPC와 RequestFactory에서 X-GWT-PermutationX-GWT-Module-Base와 함께하는 것처럼)

+1

감사합니다. 그것은 내가 생각하고 있었던 것입니다. 내가 알고있는 접두사에 대해서는 "테스팅 모드"에 불과하므로 아직 그다지주의를 기울이지는 않습니다. :) 답변과 조언을 주셔서 감사합니다. –