Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
解析flash json响应(Delphi/TWebbrowser)_Json_Flash_Delphi_Delphi Xe2_Twebbrowser - Fatal编程技术网

解析flash json响应(Delphi/TWebbrowser)

解析flash json响应(Delphi/TWebbrowser),json,flash,delphi,delphi-xe2,twebbrowser,Json,Flash,Delphi,Delphi Xe2,Twebbrowser,我有一个flash游戏,按下一个按钮后会得到更新。只有flash中的一个表得到更新,而html源代码中没有显示更改(毕竟是它的flash)。Fiddler日志显示第一个加密包(包含使用Fiddler解码后的表的所有数据),然后是16x json包(表的单个条目) 我想知道的是如何在Delphi中获得这些单个包 我不想更改数据,我只是想读取它们。我无法对任何东西(Web服务器、flash等)进行任何更改。您可以按照Arioch的建议尝试代理。不过,我不太确定它会起作用 如果我要这么做的话,这将是:

我有一个flash游戏,按下一个按钮后会得到更新。只有flash中的一个表得到更新,而html源代码中没有显示更改(毕竟是它的flash)。Fiddler日志显示第一个加密包(包含使用Fiddler解码后的表的所有数据),然后是16x json包(表的单个条目)

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


我不想更改数据,我只是想读取它们。我无法对任何东西(Web服务器、flash等)进行任何更改。

您可以按照Arioch的建议尝试代理。不过,我不太确定它会起作用

如果我要这么做的话,这将是:

  • 在C(或C++)中创建一个共享库,您可以在其中使用
  • 当有东西被发现时,让它调用你的应用程序
  • 根据需要处理/操作数据包数据
  • 传下去
不幸的是,Delphi没有可用的WinPcap“头”(或组件),因此没有其他方法(除了将所有头移植到Delphi…)


.

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

如果我要这么做的话,这将是:

  • 在C(或C++)中创建一个共享库,您可以在其中使用
  • 当有东西被发现时,让它调用你的应用程序
  • 根据需要处理/操作数据包数据
  • 传下去
不幸的是,Delphi没有可用的WinPcap“头”(或组件),因此没有其他方法(除了将所有头移植到Delphi…)


.

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