GWT RPC如何对其中的java.lang.Long值进行编码;什么是有效载荷?
我目前正在编写一个解析器来解释GWT RPC的响应 但是,我很难弄清楚GWT用于编码java.lang.Long值的编码方式(即不是原语Long,即Base64) 下面是一个示例RPC负载,用于通过组对象的ID(via.retrieve(java.lang.Long ID))检索组对象: 我已经设法弄清楚值“PFu”(在末尾)是检索方法中使用的组的编码ID 实际组的ID为“61806” 所以我的问题是,“61806”如何变成“PFu”?这里使用什么编码?它似乎不是基64 其他情况包括: iW=2198GWT RPC如何对其中的java.lang.Long值进行编码;什么是有效载荷?,java,gwt,encoding,rpc,Java,Gwt,Encoding,Rpc,我目前正在编写一个解析器来解释GWT RPC的响应 但是,我很难弄清楚GWT用于编码java.lang.Long值的编码方式(即不是原语Long,即Base64) 下面是一个示例RPC负载,用于通过组对象的ID(via.retrieve(java.lang.Long ID))检索组对象: 我已经设法弄清楚值“PFu”(在末尾)是检索方法中使用的组的编码ID 实际组的ID为“61806” 所以我的问题是,“61806”如何变成“PFu”?这里使用什么编码?它似乎不是基64 其他情况包括: iW=2
D4O=15886事实上,根据您的示例,它是完全有效的Base64 然而,最后两位数字(值62、63)似乎分别使用了“$”和“u”,而不是更常见的“+”和“/” 下划线使其URL安全,并在某些实现中使用,但美元符号必须是他们自己发明的
如果通过转换器运行示例,如果值是ascii编码的(很可能是),则可能会得到错误的结果。您可以使用GWT com.google.GWT.user.server.Base64Utils类来获取编码/解码的值 e、 g
这是非常有帮助的。那么,我该如何正确地解码这些值呢?乘以64的幂。所以D4O变成了3*64^2+56*64^1+14*64^0=12288+3584+14=15886。嗨,亚当,你完成解码器了吗?你开源了吗?你用了哪种语言,javascript?
7|0|5|http://10.0.1.35:8005/platform/gwt/com.application.gwt.Contacts/|57C71F0104C208A16262D2898A6133DD|com.application.gwt.client.rpc.GroupService|retrieve|java.lang.Long/4227064769|1|2|3|4|1|5|5|PFu|
String val = Base64Utils.toBase64(727854);
long l = Base64Utils.longFromBase64("WIe7dms");