我有这种请求似乎是GWT-RPC格式:
R7〜 “61〜com.foo.Service〜” 14〜方法a〜D2〜 “3〜F7E〜” 3〜〜的BOe〜Ecom.foo.data.BeanType〜I116〜Lcom.foo.Parameter I5〜” 1〜b〜Z0〜 “1〜N〜V〜” 1〜O〜Z1〜 “1〜p〜Z1〜” 1〜q〜V〜'
但它不符合此处描述的协议:
这个协议究竟是什么?它真的是GWT-RPC还是其他东西(deRPC?)?
查看gwt-2.5.1源代码,我注意到以下包可能会生成这种格式:
这是deRPC吗?
答案 0 :(得分:3)
基于您列出的软件包中deRPC类的快速浏览,它确实看起来像deRPC。请注意,deRPC一直被标记为实验性的,现在已弃用,而且应该使用RPC或RequestFactory。
似乎证实了这一点的细节:
com.google.gwt.rpc.client.impl.SimplePayloadSink#RPC_SEPARATOR_CHAR
是一个等于~
字符的常量,它似乎是您提供的示例字符串中不同标记之间的分隔符。
com.google.gwt.rpc.client.impl.SimplePayloadSink and
com.google.gwt.rpc.server.SimplePayloadDecoder`都有许多评论,似乎描述了您在那里看到的相同基本格式:
// "4~abcd
中的 endVisit(StringValueCommand x, Context ctx)
与示例字符串中的几个标记紧密匹配 - 一个表示字符串的引号,一个描述长度的int,一个~
分隔符,然后是字符串本身(这不符合所有内容,我怀疑是因为您删除了有关服务和方法名称的详细信息):
"3~F7e
"3~B0e
"1~b
布尔都会关注Z1
或Z0
,如您的示例字符串