当我发出HTTP请求时,我试图打印出响应数据,其中jpcap正在嗅探数据包。
我已经设法获得了一些标题信息,但我无法获得实际的HTML内容。这是我使用的代码:
try {
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
System.out.println("Opening interface");
JpcapCaptor captor=JpcapCaptor.openDevice(devices[0], 65535, true, 20);
captor.setFilter("ip and tcp", true);
while(true) {
Packet thisPacket = captor.getPacket();
if(thisPacket != null) {
TCPPacket p = (TCPPacket)thisPacket;
System.out.println(p.toString());
}
}
} catch (Exception e) {
System.out.println("Error: " + e );
}谢谢你的帮助
发布于 2010-09-02 02:26:45
由于您可以读取HTTP报头,但无法读取HTML内容,因此我猜测HTTP响应的正文已被压缩(例如,使用gzip)。您可以识别压缩的响应,因为HTTP响应头包含如下行:
Content-Encoding: gzip如果你能发布你的程序的示例输出,我们就可以证实这一理论。在这种情况下,您应该使用解压实体主体来获取服务器发送的HTML。
有关HTTP内容编码的更多信息,请参考RFC 2616。
https://stackoverflow.com/questions/3620804
复制相似问题