【问题标题】:GWT java.util.Date serializationGWT java.util.Date 序列化
【发布时间】:2015-11-17 16:50:23
【问题描述】:

我正在构建一个基于 GWT 的网络应用程序的爬虫,以自动化我们需要在间隔基础上执行的一些任务。有两个日期选择器可以选择开始日期和结束日期。我看到有一种算法可以将 Javascript 日期转换为字符串以随 http 请求发送。 例如:

11-08-2015 是VDkLYWA

11-09-2015 是VDpU$GA

11-10-2015 是VDuej2A

我试图深入研究 JS 代码,但正如您想象的那样,运气不佳。 我猜在 GWT 项目source code 中有一个反序列化的非混淆版本,以便我可以对其进行逆向工程,但我没有使用 GWT 的经验,也不知道确切的位置。 也许有人已经解决了这个问题或者可以向我指出一些资源?

谢谢!

【问题讨论】:

  • 以任何您喜欢的格式(即 20151108 或 2015-11-08)将日期作为字符串传递有什么问题?

标签: javascript java ajax gwt


【解决方案1】:

GWT 有一个类 com.google.gwt.lang.LongLib(在 gwt-dev.jar 中),它将日期长值转换为字符串转换。这种转换基本上是Base64转换。以下是它的工作原理示例:

Date d = new Date(115, 10, 8, 0, 0, 0); //2015-11-08 00:00:00
String s = LongLib.toBase64(d.getTime());
System.out.println(s); //Prints VDjNlRA

因此,您可以在应用程序中包含此 jar 来进行此转换,也可以在 javascript 中编写相同的算法。

【讨论】:

  • 我不是 GWT/Java 专家,我在 gwt.user.client.rpc.impl.AbstractSerializationStream.java 文件中找到了 longToBase64 方法,这是我需要在 javascript 中实现的算法吗?
  • 是的。您需要在 JS 中实现相同的算法。 github.com/gwtproject/gwt/blob/master/user/src/com/google/gwt/…
  • 谢谢,这就是我要找的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 2014-04-18
相关资源
最近更新 更多