javascript - https 到 android 上的 http 反向代理应用程序?

标签 javascript android debugging https reverse-proxy

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

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

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

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

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

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

最佳答案

正如您提到的,您的开发主要基于 SDK,我认为您可以找到一个用于调试的选项是 Dalvik Debug Monitor Server (DDMS)。它被引用为最强大的 Android 调试工具之一,即 Dalvik Debug Monitor Server。

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

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

关于javascript - https 到 android 上的 http 反向代理应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671294/

相关文章:

javascript - jQuery selector 一定是字符串和0到9之后的数字吗?

javascript - AJAX 响应太多

android - Parse.com 相当于 Group By

javascript - Firefox/Chromium 插件捕获所有 AJAX 请求?

javascript - Chrome 的最佳 JavaScript 控制台

javascript - 将 Webstorm 调试器与 node.js 一起使用

javascript - 通过 Ajax 下载生成的 CSV 文件

javascript - 在定义列表项旁边添加按钮

安卓 Facebook SDK : Key hash does not match any stored key hashes when uploading google play

java - Android UI 以编程方式在 GridLayout 位置