【发布时间】:2016-11-16 04:36:51
【问题描述】:
按照我的previous question(如果您有想法,仍然没有答案...),我尝试在 Java 代码中明确设置代理。这样做时,我终于在 Fiddler 中看到了请求隧道 (A SSLv3-compatible ClientHello handshake was found...),但仍然看不到请求本身。但是,我在不使用代理时收到的响应不是 200,而是抛出以下错误:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
简而言之,我的主要目标是通过模拟 Web 浏览器行为(在标题和帖子参数方面)自动化登录过程。我设法在 PC 上使用本机 Java 应用程序来做到这一点,但完全相同的代码在 Android 上的某些请求中返回 400(可能是因为与 Oracle SDK 相比,Android 中的HttpUrlConnection 类实现完全不同),所以我想捕获传出流量并找出差异。我成功地收到了从我的 PC 发送的请求,现在正在使用 Android。
成功捕获 Android 设备浏览器请求,该问题仅出现在应用程序(特别是我的应用程序)中。我在设备上安装了 Fiddler 证书并根据需要设置了 WiFi 代理。
我也在两台设备上试过,其中一台已经root了,没用。
任何帮助将不胜感激!
一些代码:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.0.120", 8888)); //My PC IP on local LAN
conn = (HttpsURLConnection) url.openConnection(proxy);
conn.setRequestMethod("GET");
conn.setUseCaches(false);
conn.setRequestProperty(...) //Repeating thie line to add headers
int responseCode = conn.getResponseCode(); //Exception is thrown in this line
【问题讨论】:
标签: android ssl proxy fiddler httpsurlconnection