问题描述
我有以下代码,我使用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 (将#修改为@)