gpt4 book ai didi

c# - HttpWebRequest 内容长度错误

转载 作者:行者123 更新时间:2023-11-30 16:27:26 24 4
gpt4 key购买 nike

当使用 HttpWebResponse 下载文件时,服务器发送的内容长度错误,导致 HttpWebResponse 中途停止下载文件。 IE浏览器好像没有这个问题。关于如何让 HttpWebResponse 忽略服务器发送的内容长度或什至有意义的任何想法。如果能提供任何帮助,我们将不胜感激。

--例子

class Program
{
static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:59771/Default.aspx");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Console.WriteLine("Content length: " + response.ContentLength);

int bytesRead = 0;
long totalBytesRead = 0;

byte[] data = new byte[1024 * 64];
StringBuilder output = new StringBuilder();

Stream responseStream = response.GetResponseStream();

do
{
bytesRead = responseStream.Read(data, 0, 1024 * 64);
totalBytesRead += bytesRead;

output.Append(Encoding.ASCII.GetString(data, 0, bytesRead));
}
while (bytesRead > 0);

Console.WriteLine("total read: " + totalBytesRead);
Console.WriteLine("last content read: " + output.ToString());
}

protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Content-Length", "13");
Response.Write("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}
}

问题解决了!

我们从中提取数据的服务器是 Cognos 服务器,它正在计算内容长度,就好像字符串要被压缩一样,但我们没有发送代码来声明我们可以接受压缩,所以它会发回未压缩的数据,但仅限于压缩的长度。 IE 没有这个问题,因为它声明它可以接受压缩。更正问题的代码:

request2.Headers.Add("Accept-Encoding", "gzip,deflate");

最佳答案

问题解决了!

我们从中提取数据的服务器是 Cognos 服务器,它正在计算内容长度,就好像字符串要被压缩一样,但我们没有发送代码来声明我们可以接受压缩,所以它会发回未压缩的数据,但仅限于压缩的长度。 IE 没有这个问题,因为它声明它可以接受压缩。更正问题的代码:

 request2.Headers.Add("Accept-Encoding", "gzip,deflate"); 

关于c# - HttpWebRequest 内容长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com