Java 如何从TCP数据包中获取HTTP正文
我有下面的代码,我使用pcap4j嗅探数据包并得到响应。我将数据包转换为TCP数据包并尝试获取原始数据。我能够获取所有的头,但HTTP响应体显示垃圾值 代码:Java 如何从TCP数据包中获取HTTP正文,java,http,tcp,packet-sniffers,Java,Http,Tcp,Packet Sniffers,我有下面的代码,我使用pcap4j嗅探数据包并得到响应。我将数据包转换为TCP数据包并尝试获取原始数据。我能够获取所有的头,但HTTP响应体显示垃圾值 代码: public void gotPacket(Packet packet) { TcpPacket tcpPacket = packet.get(TcpPacket.class); try { if(tcpPacket.getPayload()!=null) {
public void gotPacket(Packet packet) {
TcpPacket tcpPacket = packet.get(TcpPacket.class);
try {
if(tcpPacket.getPayload()!=null) {
String hexStreamData = new String(tcpPacket.getPayload().getRawData(),"UTF-8");
System.out.println(hexStreamData);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我得到的输出如下
HTTP/1.1 200 OK
Xet-Cookie: dp1=bu1p/QEBfX0BAX19AQA**62f4c24b^;Domain=.abc.com;Expires=Thu, 11-Aug-2022 08:48:11 GMT;Path=/
Set-Cookie: s=CgAD4ACBfM6zLZDAxNjgasdvsfNzMwYTRlMdsfsdfgwZmZmZGI2YTZqfLYV;Domain=.abc.com;Path=/; HttpOnly
Set-Cookie: nonsession=CgADLAAFfMmJTNxcafMJLMWNlZDQ0ZjUxNzMwYTRdsfsdYzMTc0Y2E0ZmZmZjNkM2Zyr0xe;Domain=.abc.com;Expires=Thu, 11-Aug-2022 08:48:11 GMT;Path=/
Content-Encoding: gzip
Content-Type: application/json
Transfer-Encoding: chunked
Date: Tue, 11 Aug 2020 08:48:10 GMT
11f
���Ok�0��"9����I�L�x�Mٱd鯵�&%y�Q���Vs��v�������p:�|)I��J����N7&5���#Q馜�X�)� ��<o�x�LG
���xje���v����"�A�S�k�[��O��&�0x)S��O&&�c�7�o��)�ZE���D�e�Z��&��|����sT���h/�:������ZW�V�:���̬01�+��ߨo�WH{�Ft�1G�*�0O��s�z=�,;����N㍮���._�3��
0
HTTP/1.1200正常
Xet Cookie:dp1=bu1p/QEBfX0BAX19AQA**62f4c24b^;域名=.abc.com;Expires=周四,2022年8月11日08:48:11格林威治标准时间;路径=/
设置Cookie:s=cgad4acbfm6zlzdaxnjgasvsfnzmwytrlmdsfsdfgwzmzmi2ytzfylv;域名=.abc.com;路径=/;HttpOnly
设置Cookie:nonsession=cgadlaaffmmjtnxcafmjllmwnlzdq0zjuxnzmwytrdsfdyzmtc0y2e0zmzmzjnkm2 zyr0xe;域名=.abc.com;Expires=周四,2022年8月11日08:48:11格林威治标准时间;路径=/
内容编码:gzip
内容类型:application/json
传输编码:分块
日期:2020年8月11日星期二08:48:10 GMT
11f
���好啊�0��"9����我�L�x�Mٱd鯵�&%Y�Q���Vs��v�������p:�|)我��J����N7和5���#Q馜�X�)� ��Content Encoding:gzip
正文通过gzip
进行压缩。请参阅Content Encoding:gzip
响应头。是否可以使用pcap4jContent Encoding:gzip
从TCP数据包获取有效负载正文通过gzip
进行压缩。请参阅Content Encoding:gzip
响应头可以使用pcap4j从TCP数据包获取有效负载