繁体   English   中英

在android上https到http反向代理应用程序?

[英]https to http reverse proxy app on android?

我正在尝试设置一个解决方案,允许直接在Android平板电脑上完整调试javascript代码。 这是一个在标准移动浏览器(如Chrome或Firefox)中运行的HTML5应用,需要调试。 “完全”是指需要设置断点并逐步执行代码(in,over,out)的能力。

能够直接在设备上进行调试对于远程调试的PC不可用的现场情况非常重要。 在某些时候,将需要调试具有脱机功能的Web应用程序的能力,代理服务器将不必执行任何操作,假设前端代码已经加载到浏览器中和/或在丢失网络连接之前缓存在设备上,但这不是这个问题的焦点。

我能够得到一个Weinre解决方案,但发现Weinre没有设置断点或单步执行代码的能力。 然后我发现了jsHybugger应用程序,一个付费产品,我可以在平板电脑上运行,代理请求到服务器,然后提供调试界面,我可以使用同一Android平板设备上的不同浏览器选项卡实际查看。

我遗漏的部分是jsHybugger不支持https,因此不会与提供要调试的代码的服务器通信。 使用https而不是http非常重要,因为在服务器和浏览器之间传递敏感信息。 由于调试是在现场进行的,因此不像在局域网上缺少https并不那么重要。 总是可以在更受控制的设置中进行一些调试,但是在现场中不可避免地会发生错误,这需要使用真实(非虚拟或消毒的http)数据进行“紧急调试”。

我知道有反向代理 - 例如我可以很容易地将代理https反向到apache中的http。 但问题是,由于平板电脑和服务器之间的连接需要加密,我不能在服务器上进行代理,而且由于另一个(非Android)设备并不总是可用,我需要在平板电脑。 到目前为止,我还没有发现任何应用程序显然看起来他们会做我需要的。 例如,我看过i-Jetty,因为我已经读过Jetty(基于它)可以做我正在寻找的东西,但我在代理上看到的所有例子都是Java代码,我想避免需要为此自己编写任何代码。 我也看过Fiddler,但它似乎没有在Android上运行,尽管大胆宣称它是“任何浏览器,系统或平台的免费网络调试代理”。 显然,无论您使用什么平台或语言开发,“Fiddler都会随时为您提供帮助!” 在这种情况下是错误的。 我还查看了Google Play商店中的各种应用,却没有找到任何内容。 也许这个功能并没有突出显示,我错过了它。 希望有一些应用程序已经做了我需要的最少的配置摆弄。 理想情况下它不需要root; 如果它确实不是一个显示停止,但它不太优选作为生根只是为了能够调试可能是一个麻烦,因为我们没有其他任何需要它,并且一些设备比其他设备更加繁琐。

或者,如果有更好的方法来完成我想要做的事情,我会接受这个作为答案。

正如您所提到的,您的开发主要是在SDK上,我认为您可以找到可供调试的选项是Dalvik Debug Monitor Server(DDMS)。 它被称为最强大的Android调试工具之一,有Dalvik Debug Monitor Server。

特别是对于HTTPS,Google App Engine将此功能作为您感兴趣的HTTP / HTTPS代理提供:gae-go-testing。 看看Github上也可以使用的这个开源项目,它似乎可以利用Google App Engine中的一些工具,这些工具也可以在Google Play上作为已发布的应用程序使用。

作为替代方案,您可以考虑在开发服务器中运行该应用程序,并使用Selenium来执行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM