【问题标题】:Parsing a flash json response (Delphi/ TWebbrowser)解析 flash json 响应 (Delphi/TWebbrowser)
【发布时间】:2012-09-26 07:36:28
【问题描述】:

我有一个 Flash 游戏,并在按下按钮后获取更新。只有 flash 中的一个表被更新,并且更改不会显示在 html 源代码中(好吧,毕竟是它的 flash)。使用 Fiddler 记录显示第一个加密包(包含使用 Fiddler 解码后的表的所有数据),然后是 16x json 包(表的单个条目)。

我想知道的是如何在 Delphi 中获取这些单个包。

我不想更改数据,我只是想阅读它们。我无法对任何东西(网络服务器、闪存等)进行任何更改。

【问题讨论】:

  • 请编辑您的答案,告诉我们您的 Delphi 版本。后面的 Delphi 版本中有 DBXJSON。
  • Progdigy.com 有 SuperObject 包。如果您创建一个代表消息的类并以 ORM 方式从数据包中填充它可能会很好。
  • 我的问题不是解释包(或者至少现在不是),而是在 Delphi 中以第一种方式获取它。
  • 那是关于 Internet Explorer 和 Flash 的问题,而不是关于 Delphi 的问题。你能注册一些 BHO 来拦截 HTTP 流量吗? AFAIr 这就是 Fiddler v.1 的工作方式。 ReGet Deluxe 个人也有 MSIE 间谍插件实现这一点。您应该询问 Internet Explorer 社区是否可以拦截 Flash AJAX 数据包。然后使用给定的收据,您可以将其移植到 Delphi 并询问移植的某些问题。此外,您可以尝试使用 Chrome 代替 TWebBrowser,它有一些特殊的 Flash 构建,不知道这是否会使拦截更容易或更难。
  • 您可以尝试在您的应用程序中实现一些愚蠢的伪代理。然后让 TWebBrowser 使用该代理(再次询问 MSIE 专家如何将代理强制到某些 ActiveX 实例上),也许——只是也许——Flahs 插件也会使用该代理。但可能不是,因为在控制面板中有一个单独的 Flash 代理独立设置。嗯,作为一个非常粗糙的丑陋解决方案,您可以在打开页面之前更改 Flash 代理设置并在页面加载后恢复它。但这很丑。

标签: json flash delphi delphi-xe2 twebbrowser


【解决方案1】:

您可以尝试像 Arioch 建议的那样进行代理。不过,我不太确定它会起作用。

如果我这样做,我会这样做:

  • 在 C(或 C++)中创建一个共享库,您可以在其中使用 WinPcap 连接各种目标/源地址和端口
  • 当发现某些东西时让它调用您的应用程序
  • 根据需要处理/操作数据包数据
  • 传下去

不幸的是,Delphi 没有可用的 WinPcap“头文件”(或组件),所以没有其他方法(除了将所有头文件移植到 Delphi ...)。

Here's a tutorial on how to use WinPcap.

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 2013-03-27
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2013-04-12
    • 2019-05-15
    相关资源
    最近更新 更多