Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT RPC如何对其中的java.lang.Long值进行编码;什么是有效载荷?_Java_Gwt_Encoding_Rpc - Fatal编程技术网

GWT RPC如何对其中的java.lang.Long值进行编码;什么是有效载荷?

GWT 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

我目前正在编写一个解析器来解释GWT RPC的响应

但是,我很难弄清楚GWT用于编码java.lang.Long值的编码方式(即不是原语Long,即Base64)

下面是一个示例RPC负载,用于通过组对象的ID(via.retrieve(java.lang.Long ID))检索组对象:

我已经设法弄清楚值“PFu”(在末尾)是检索方法中使用的组的编码ID

实际组的ID为“61806”

所以我的问题是,“61806”如何变成“PFu”?这里使用什么编码?它似乎不是基64

其他情况包括:

iW=2198
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");