如何从C#中的TCP数据包获取HTTP正文消息#

问题描述:

我正在研究c#上的tcp监听器项目。我正在使用pcap.net进行数据包捕获。但是当我试图通过诸如tcp.Http.Decode(Encoding.UTF8)这样的命令获得http消息时,我得到了一些加密的脚本。我正在监听不使用SSL保护的网站。我试过tcp.Http.ToMemoryString()然后用UTF8用字节解码,我可以正确得到Http头,但是我不能以可读的形式得到HTTP消息。任何想法我该怎么做,或者我错过了什么?如何从C#中的TCP数据包获取HTTP正文消息#

+0

它可以被压缩,检查传输编码的标题 – Joni

+0

哦,我也尝试过使用gzip和deflate,但也有一个问题出现了。幻数错误你有什么想法如何解决它? –

您应该使用HttpDatagram.Body属性来获取正文。

这将返回解析的HTTP数据包的正文部分。

请注意,虽然您正在解析单个数据包,所以您只能从该数据包中获取数据,该数据包可能不包含整个HTTP响应正文。

+0

我得到了该网站的所有数据包,它必须是一个数据,也许有一点数据必须在一个数据包中。它看起来像压缩或编码可以帮助我吗? –

+0

如果它不是第一个数据包,则必须先进行TCP重构,然后解析数据。 – brickner

+0

非常感谢你的家伙 –