微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android如何模拟离线演示的HTTP通信

如何解决Android如何模拟离线演示的HTTP通信

| 我有一个Android应用程序,几乎所有操作都使用http通信。我希望能够通过某种方式重播http交换而无需连接到互联网即可进行演示。如何才能做到这一点?因此,我想以某种方式几乎类似于模拟对象,但实际上是模拟http会话,以便始终可以在脱机状态下演示应用程序。这确实是一件很酷的事情。因为您可以轻松可靠地演示该应用程序。有谁知道我该怎么做。复制整个服务器端并不是解决方案太多的选择。重要的是,不仅要显示截屏视频,还要显示真实的数据交换。我只希望能够通过该应用运行并重播。也许也调试。谢谢     

解决方法

        这是一个混合解决方案,它使用了其他答案中的相似想法: 您可以编写一个死的简单HTTP服务器,该服务器侦听\“ localhost:80 \”(或目标服务器上的端口),然后将应用程序指向该主机,而不是通过从请求中排除主机名来实现。您的本地服务器引用了实际的远程服务器,并执行以下操作: 如果为ONLINE,则将请求原样转发到真实服务器,获取响应,然后将其本地保存在以请求URL为键的内存高速缓存中,或以URL作为其标识符的文件中(适当处理) 如果为OFFLINE,则在其(内存或文件系统)缓存中查找请求,并从缓存中返回内容 这有点像@ nicholas.hauschild所说的记录/播放模式。 现在,您只需在ONLINE上运行一次应用程序,即可使localhost服务器保存针对真实服务器发出的请求。然后,当您离线运行应用程序时,只要发出相同的URL,它就会返回这些缓存的内容。 希望这可以帮助。     ,         如果您的设备已植根,则可以按照本文中的说明使用tcpdump:http://www.vbsteven.be/blog/android-debugging-inspectin-network-traffic-with-tcpdump/ 或使用AndroShark(如果从xda-developers获得,请访问:http://forum.xda-developers.com/showthread.php?t=725692) 或这个(仅限WiFi):http://www.9bitlabs.com/default.aspx     ,        我将为我的应用程序创建一个“记录模式”和一个“播放模式”。 在记录模式下,每次发出http请求时,我都会写出一个文件。该文件将由发出请求的端点命名。该文件的内容将是按行分解的序列化http请求/响应的集合。然后,您可以反序列化此文件中的行,直到找到正确的请求,然后播放反序列化的响应。 这种方法还允许您创建“记录/播放”配置文件,您可以在其中记录多个不同的会话(通过将文件放置在不同的目录中),然后从您选择的任何配置文件中进行播放。 可以使用围绕您正在使用的HttpClient对象的小型包装器类来完成整个方法。     ,        一种方法是使用HTTP代理。将所有网络流量重定向到可以在电话本地运行的代理。只需很少或没有源代码更改即可完成此操作。     ,        找到一种在PC上使用Fiddler的方法,Android应用程序以Fiddler作为代理。因此记录了HTTP流量。 http://blog.csdn.net/grhunter/article/details/5830199     ,        您可以尝试我前一段时间问过的这个问题的答案之一。这不是完全相同的用例,但它们也可以解决您的问题。 伪造HTTP请求响应以在Android中进行测试     ,        简单的解决方案在于在没有连接时伪造它。如果连接出错,请确保您的应用抛出了一些预设数据,而不是连接出错。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。