我有一个Android应用程序,几乎每个操作都使用http通信。我想通过某种方式重播http交换,能够在没有连接到互联网的情况下进行演示。如何才能做到这一点?所以我想以某种方式几乎像模拟对象,但真的模拟http会话,所以我总是可以在线或离线演示应用程序。这真的是一件非常酷的事情。因为您可以轻松可靠地演示应用程序。有谁知道我怎么能做到这一点。复制整个服务器端只是不是一个选项,它有太多的东西。重要的是不要只显示截屏视频而是真正的数据交换。我只是希望能够通过应用程序运行并重播。也许调试。感谢
答案 0 :(得分:5)
这是一个使用其他答案的类似想法的混合解决方案:
您可以编写一个简单的HTTP服务器来侦听“localhost:80”(或者您要定位的服务器上的任何端口),并将您的应用程序指向此主机,而不是通过从请求中分解出主机名。您的本地服务器具有对实际远程服务器的引用,并执行以下操作:
这有点像@ nicholas.hauschild所说的录制/播放模式。
现在,您可以在ONLINE时运行一次应用程序,从而使本地主机服务器保存它针对真实服务器发出的请求。然后,当你的应用程序脱机运行时,只要发出相同的URL,它就会返回这些缓存的内容。
希望这有帮助。
答案 1 :(得分:2)
答案 2 :(得分:1)
我会为我的应用创建“录制模式”和“播放模式”。
在记录模式下,每次发出http请求时我都会写出一个文件。该请求所在的端点将命名该文件。该文件的内容将是按行分解的序列化http请求/响应的集合。然后,您可以从此文件中反序列化行,直到找到正确的请求,然后播放反序列化的响应。
此方法还允许您创建录制/播放配置文件,您可以在其中录制多个不同的会话(通过将文件放入不同的目录),然后从您选择的任何配置文件进行播放。
这整个方法可以使用您正在使用的HttpClient对象周围的小包装类来完成。
答案 3 :(得分:1)
一种方法是使用HTTP代理。将所有Web流量重定向到代理,该代理可以在手机上本地运行。这可以在很少或没有源代码更改的情况下完成。
答案 4 :(得分:1)
在PC上找到一种使用fiddler的方法,并且android app将fiddler作为代理。所以http流量是记录。 http://blog.csdn.net/grhunter/article/details/5830199
答案 5 :(得分:0)
你可以尝试一下这个问题中的一个答案。它不是完全相同的用例,但它们也可以解决您的问题。
答案 6 :(得分:0)
简单的解决方案在于在没有连接时伪造它。如果连接出错,请确保您的应用程序抛出一些预设数据而不是连接错误。