必须将ContentLength设置为非负数,或者将SendChunked设置为true才能执行写操作

时间:2019-09-05 13:40:53

标签: c# soap stream httpwebrequest xmldocument

我使用HttpWebRequest,使用以下代码来请求肥皂并获取流:

XmlDocument soapEnvelopeXml = new XmlDocument();
HttpWebRequest webRequest = ...

using (Stream stream = webRequest.GetRequestStream())
{
    soapEnvelopeXml.Save(stream);
}

这是错误消息:

Either ContentLength must be set to a non-negative number, or SendChunked set to true in order to perform the write operation when AllowWriteStreamBuffering is disabled.

如以上消息所述,我无法写入流,因为如果调用save soapEvelopeXml,应用程序将结束。

1 个答案:

答案 0 :(得分:2)

要解决该错误,只需在HttpWebRequest对象中启用一个参数即可。

webRequest.AllowWriteStreamBuffering = true;

该参数是对象属性的一部分,并引自docs.microsoft.com上的文档

AllowWriteStreamBuffering:获取或设置一个值,该值指示是否缓冲发送到Internet资源的数据