C#-HttpWebRequest内容长度错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-HttpWebRequest内容长度错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1753字,纯文字阅读大概需要3分钟。
内容图文
![C#-HttpWebRequest内容长度错误](/upload/InfoBanner/zyjiaocheng/655/9d721f0c0073496fb867af6349b4b187.jpg)
当使用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内容长度错误全部内容,希望文章能够帮你解决C#-HttpWebRequest内容长度错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。