我可以在不设置ContentLength的情况下创建WebRequest

时间:2013-05-02 17:54:29

标签: asp.net httpwebrequest

这是一个愚蠢的问题,但我正在测试一个工具,需要创建一个不寻常的情况。我想发出一个POST请求,将几兆字节的数据发送到Web服务器,但我不想设置Content-Length。 (如果将其设置为0或-1,则可以。)

HttpWebRequest自动将request.ContentLength设置为RequestStream缓冲区的长度。有没有办法防止或绕过这个?

1 个答案:

答案 0 :(得分:3)

您可以使用分块编码发送POST请求,而无需设置Content-Length标头。使用分块编码,您可以分段(或“块”)而不是单个数据发送数据。当您需要将数据发送到服务器但却不知道大小时,这非常有用。

Chunked编码是由RFC 2616

定义的HTTP 1.1的一部分

.NET提供SendChunked feature来支持这种情况