http - GWT RequestBuilder 将客户端日期设置为 HTTP 日期 POST header

标签 http gwt date http-request

我正在使用 GWT RPC 在客户端和服务器之间进行通信。 我希望能够在服务器端读取浏览器的日期,为此我使用 ServiceDefTarget 类中的 setRpcRequestBuilder 来自定义我的请求,并添加我想要的 header 。

在客户端我使用:

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(.........)

在服务器端我这样做:

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);
    }

在所有默认标题中打印

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

好的,这工作正常,但是当我尝试设置“日期” header 时,它不会显示在服务器端。这是为什么?任何人都可以提供帮助。我会很有帮助的。 :)

最佳答案

Datepredefined header HTTP,根据定义,XMLHttpRequest(GWT 的RequestBuilder 背后的东西)cannot let you set it到任意值。

无论如何,在制作自己的 header 时,您应该添加一个前缀以避免与网络上添加 header 的其他内容发生冲突,例如 MyApp-DateX-MyApp-Date(就像 GWT 在 GWT-RPC 和 RequestFactory 中使用 X-GWT-PermutationX-GWT-Module-Base 一样)

关于http - GWT RequestBuilder 将客户端日期设置为 HTTP 日期 POST header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089792/

相关文章:

json - 收集资源的响应有效负载主体的建议

http - Redis 如何适应 ASP.NET Web API OData 世界?

java - 为什么在 GWT(或任何网络应用程序)中使用命令模式?

angularjs - Angular http 拦截器响应 header

asp.net - 大型 Web 应用程序中的 HTTP Keep Alive

java - 在 SuperDevMode (Maven) 中运行时出错

java - 如何在 GWT 中取消转义字符串

php - 日期+时间的API响应格式(iso thing?)

Javascript 日期对象时区问题 - 不同的时区

ios - 尝试将当前日期和日期参数设置为过去的日期