用Java块化HTTP解码?


问题内容

我正在解码http数据包。我遇到了一个大问题。当我收到一个http数据包时,它具有标题和正文。当对Transefer-
encoding进行分块处理时,我不知道该怎么办?

是否有有用的API或类可对JAVA中的数据进行解组?

如果有人对http解码很有经验,请告诉我一种方法。


问题答案:

使用像Apache HttpComponents Client这样的功能强大的HTTP客户端,或者仅使用提供的Java SE
java.net.URLConnection此处为迷你教程)。两者都完全透明地处理它,并为您提供“正常”的InputStream返回。反过来,HttpClient还附带了一个ChunkedInputStream,您只需用它来装饰即可InputStream

如果您真的坚持为此自己开发一个库,那么我建议创建一个类,ChunkedInputStream extends InputStream并相应地编写逻辑。您可以在此Wikipedia文章中找到如何解析它的更多详细信息。