如何解决如何从TCP数据包获取HTTP正文
我有以下代码,我使用pcap4j嗅探数据包并获得响应。我将数据包转换为TCP数据包,并尝试获取rawData。我能够获取所有标头,但HTTP响应正文显示为垃圾值。
代码:
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标头,但仍无法获取body。我什至尝试使用Base 64进行解码,但仍然无法获得理想的结果。我想获取HTTP响应的正文。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。