【发布时间】:2017-02-06 09:22:10
【问题描述】:
首先对不起我的英语。
我需要捕获从我的 android 应用程序到 web 服务的数据包,以确定它是否真的被加密。
为此,我打开了我手机的wifi热点。
之后,我将我的电脑连接到那个 wifi,以便能够使用 wireshark 观察那个网络。
然后我运行 Wireshark 程序并开始观察那个 wifi 网络。
当我从我的 Android 应用发送 HTTPS POST 请求时,我希望看到 HTTP 协议数据包。
但我看不到。相反,我看到了一些 TCP 和 QUIC 协议数据包。实际上 QUIC 数据包有一个字段,上面写着“加密”,这是我想看到的,但我知道它是 UDP 数据包,我不知道为什么还有很多 UDP 数据包,我认为它们不是我需要的(但不是当然)。
实际上有时我收到了 HTTP 数据包,但主机是 ssw.live.com。但我的目标主机实际上是不同的。所以这不是我想要捕捉的。
以下是我的 HTTP 请求
HttpsURLConnection urlConnection = setUpHttpsConnection(url.toString());
try {
urlConnection.setRequestMethod("POST");
} catch (ProtocolException e) {
e.printStackTrace();
}
urlConnection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
urlConnection.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
HostnameVerifier hv =
HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify("my.hostname.com.tr", sslSession);
}
});
以下是我发送 http post 请求后的屏幕截图。 HTTP包只有一个,不相关。
在那个 HTTP 数据包内;
主机名不同。
我还尝试在我的 PC 上打开一些网站,看看我是否可以捕获我的 PC 的数据包,但它有时不会发送 HTTP 协议数据包,而我期望通过打开一些网站。
我想知道我写的那些有什么不合理的地方。
是否可以使用这种方式捕获来自我的手机的数据包?
如果是这样,为什么我看不到它们?
任何想法将不胜感激。提前致谢。
【问题讨论】:
标签: android sockets networking tcp wireshark