不知道那位前辈通过HttpWebRequest.Headers.Add添加Content-Range消息成功过
(添加Content-Length也是没反应的)。
昨天搞了一整天,只有通过HttpWebRequest.AddRange添成功过。这个头信息是否受系统保护???
代码如下,前辈帮我看看。 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://62.duote.com/duote_qq.exe");
request.Headers.Add("Content-Range", "bytes 10-100/28479640");//不希望通过HttpWebRequest.AddRange来添加 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
foreach (string key in response.Headers.AllKeys)
{
string str = response.Headers[key];
byte[] bt = new byte[str.Length];
for (int i = 0; i < str.Length; ++i)
{
bt[i] = (byte)str[i];
} Console.WriteLine("{0}={1}",key , Encoding.GetEncoding("GB2312").GetString(bt));
}
Console.ReadLine();
谢谢!!
(添加Content-Length也是没反应的)。
昨天搞了一整天,只有通过HttpWebRequest.AddRange添成功过。这个头信息是否受系统保护???
代码如下,前辈帮我看看。 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://62.duote.com/duote_qq.exe");
request.Headers.Add("Content-Range", "bytes 10-100/28479640");//不希望通过HttpWebRequest.AddRange来添加 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
foreach (string key in response.Headers.AllKeys)
{
string str = response.Headers[key];
byte[] bt = new byte[str.Length];
for (int i = 0; i < str.Length; ++i)
{
bt[i] = (byte)str[i];
} Console.WriteLine("{0}={1}",key , Encoding.GetEncoding("GB2312").GetString(bt));
}
Console.ReadLine();
谢谢!!
request.ContentLength = buff.Length;
request.Method = "POST";
request.Referer = "http://XXX";
request.ContentType = "application/x-www-form-urlencoded";
byte[] buff = Encoding.Default.GetBytes(data);
request.ContentLength = buff.Length;
Stream stream = request.GetRequestStream();
stream.Write(buff, 0, buff.Length); string text = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
的问题!!!
下面是请求代码
request.Headers.Add("Content-Range", "bytes=28479640")
Range用户请求头中,指定第一个字节的位置和最后一个字节的位置,如(Range:200-300)
Content-Range用于响应头请求下载整个文件:
***********************************
GET /test.rar HTTP/1.1
Connection: close
Host: 116.1.219.219
Range: bytes=0-100
***********************************
Range头域可以请求实体的一个或者多个子范围,Range的值为0表示第一个字节,也就是Range计算字节数是从0开始的
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0,-1
同时指定几个范围:bytes=500-600,601-999
一般正常回应
***********************************
HTTP/1.1 206 OK
Content-Length: 801
Content-Type: application/octet-stream
Content-Location: http://www.onlinedown.net/hj_index.htm
Content-Range: bytes 0-100/2350 //2350:文件总大小
Last-Modified: Mon, 16 Feb 2009 16:10:12 GMT
Accept-Ranges: bytes
ETag: "d67a4bc5190c91:512"
Server: Microsoft-IIS/6.0
Date: Wed, 18 Feb 2009 07:55:26 GMT
***********************************
Content-Range是响应头不是请求头
不要停在Content-Range了,请求数据应该用Range
在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:
Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth
如,传送头500个字节次字段的形式:Content-Range:bytes0-499/1234如果一个http消息包含此节
Content-Range表示传送的范围,Content-Length表示实际传送的字节数。
由 ContentLength 属性设置。
Range
由 AddRange 方法设置。