我正在使用 .Net TcpClient / Sockets 编写一个 HTTP 客户端。
到目前为止,客户端通过遍历 NetworkStream 响应(在向 TcpClient 写入 GET 请求之后)、解析标头并检索相关的消息正文字节/分块字节来处理 Content-Length 和分块响应。为此,它使用 NetworkStream ReadByte 方法。
这一切都很好,但性能是应用程序的一个关键考虑因素,所以我想让它尽可能快速和高效。
最初,这将涉及将 ReadByte 交换为 Read 以获取消息正文(基于 Content-Length)或分块消息正文字节检索到适当大小的缓冲区,在所有其他区域使用 ReadByte(例如读取标头、块大小等)。
我很想知道关于更好/不同方法来实现最佳性能的想法?显然,HTTP 的主要问题是不知道响应流的长度,除非在检索时对其进行解析。
我没有为此使用更多抽象类(例如HttpWebRequest)有一个特定的原因(我需要在套接字级别进行更好的控制)。
非常感谢,
克里斯