如何将Chrome的Request Payload转换成JSON?

How to convert Chrome's Request Payload into JSON?

当我在 Mac(Network 选项卡)的 Chrome 的 DevTools 中检查 Web 请求时,我得到了 Payload格式如下:

7|0|6|https://www.example.com/app/Basic/|00D1D071AC218DFE91521C012683E911|com.optionfair.client.common.services.nongenerated.RefreshService|getCometUpdates|I|J|1|2|3|4|3|5|6|6|173|VvAwAqy|o$UN|

基本由竖线分隔(|)。

如何将上述有效负载从 Chrome 复制或转换为某种有意义的格式,例如 JSON?有什么想法吗?

顺便说一句。在 中,它在屏幕截图上看起来不错,但在我的情况下,我没有 view parsed 并且看起来根本不像 JSON 格式.


在 Mac 上使用 Google Chrome(版本 57.0.2987.133,64 位)。


可重现的步骤:

  1. 转到此 page
  2. 在 Network/XHR 选项卡上打开 DevTools 并查找刷新请求。

我的目标是在curl等命令行工具中reuse/replicateRequest Payload中的POST数据,这样就可以了被识别(在上面提到的页面上没有必要,但我想知道处理这种 blob 格式的一般方法)。我希望 JSON 格式,但事实并非如此。

这里您需要查看请求headercontent-type以确定此请求是如何编码的,然后才能知道可能解析它的内容:

这是 GWT RPC,因此它可以包括 built-in 和自定义 Java Objects 的序列化,其中 class 的知识在 server-side Java 并通过 Google Web Toolkit 在客户端上转译 Java 运行。

Chrome 没有理由直接理解这种格式,它不需要 JSON 或 XML 规范化。在客户端可能的范围内完全解释这些调用可能需要针对已转译的客户端代码进行反汇编或自省技巧,假设程序未使用源映射进行转译。

在不深入研究客户端代码的情况下,可以通过修改调用来解释 the literal rpc,同时猜测或探查 classes 及其方法的定义。