我试图打印出的响应数据时,使一个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 );
    }

感谢您的帮助

有帮助吗?

解决方案

由于您能够读HTTP头但不能阅读HTML内容,我的猜测是,HTTP响应的主体已被压缩(例如,使用gzip)。你可以识别压缩响应,因为HTTP响应报头包含这样一行:

Content-Encoding: gzip

如果你可以发布你的程序的示例输出,我们可以证实这一理论。在这种情况下,应使用的解压缩实体主体,以获得由所述服务器发送的HTML。

约HTTP内容编码的详细信息请参阅 RFC 2616

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top