在我的代码中,我正在下面
HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
Stream dataStream = response.GetResponseStream();
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
httpWebRequest
是一个POST请求,在一次重定向后其在Fiddler中的响应大小为67722.在我的情况下返回的response.ContentLength
字段为-1,总大小为responseFromServer
大约为32695.只需从响应中删除剩余数据。我已经看到某处使用maxReceivedMessageSize
,但无法确定如何使用它。
responseFromServer.Length 32695
response.ContentLength -1
response.GetResponseHeader(“transfer-encoding”)“”
更新:最终
回应正确。问题在于我的代码,其中发送到POST查询的参数未通过UrlEncoding正确编码。如果我们正在处理ASP.net contentpanel control,请记住它是使用具有特殊字符'$'的控件名称发送POST查询。我们需要使用HttpUtility.UrlEncoding方法
对其进行编码答案 0 :(得分:0)
正如消费者所提到的,检查响应标题......' ContentLength'在响应头中提供,可能不是实际的数据长度;如果转移编码被“分块”,那就是"正常"将contentlength标记为-1。
我不熟悉fiddler ..但也许它正在抓取webresponse不是的东西,就像外部脚本一样?尝试在普通的网络浏览器中加载页面,然后查看来源' - >使用一些工具(文本框..)来计算源中的字符:它实际上是67k还是更接近32?同样,检查' responseFromServer'中的数据的最后一部分是否与查看页面来源'?时相同?即。两者都可能(希望?)< / h t m l>