首先抱歉我的英语。
我需要捕获从我的android应用程序到webservice的数据包,如果它真的是加密的话。
要做到这一点,我打开了手机的 wifi热点。
之后,我将我的电脑连接到那个wifi ,以便能够使用wireshark观察该网络。
然后我运行了 Wireshark 程序并开始观察该无线网络。
当我从我的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数据包内;
主机名不同。
我还尝试在我的电脑上打开一些网站,看看我是否可以捕获我的电脑的数据包,但有时它不会发送HTTP协议数据包,而我期望打开一些网站。
我想知道我写的那些是不合理的东西。
是否有可能以这种方式捕获来自我的手机的数据包?
如果是这样,为什么我看不到它们?
任何想法都会受到赞赏。提前谢谢。
答案 0 :(得分:0)
我认为网络服务托管在互联网上的某个网络服务器上。手机上的应用程序将通过您手机的移动数据网络访问网络服务。您的电脑没有看到此流量。它只能看到通过WiFi热点网络发送的流量。所以Wireshark无法捕获它。
您可以尝试在PC上的Android模拟器上运行该应用程序。 Android模拟器将使用您的PC网络连接与Web服务进行通信。然后,您应该能够捕获此网络流量。
或者在手机上安装tcpdump。