HttpWebRequest.AddRange 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将范围标头添加到请求。
重载
AddRange(Int32) |
将字节范围标头添加到从所请求数据的开头或末尾对特定范围的请求。 |
AddRange(Int64) |
将字节范围标头添加到从所请求数据的开头或末尾对特定范围的请求。 |
AddRange(Int32, Int32) |
将字节范围标头添加到指定范围的请求中。 |
AddRange(Int64, Int64) |
将字节范围标头添加到指定范围的请求中。 |
AddRange(String, Int32) |
将 Range 标头添加到从所请求数据的开始或结尾到特定范围的请求。 |
AddRange(String, Int64) |
将 Range 标头添加到从所请求数据的开始或结尾到特定范围的请求。 |
AddRange(String, Int32, Int32) |
将范围标头添加到指定范围的请求中。 |
AddRange(String, Int64, Int64) |
将范围标头添加到指定范围的请求中。 |
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
AddRange(Int32)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将字节范围标头添加到从所请求数据的开头或末尾对特定范围的请求。
public:
void AddRange(int range);
public void AddRange (int range);
member this.AddRange : int -> unit
Public Sub AddRange (range As Integer)
参数
- range
- Int32
范围的起点或终点。
例外
rangeSpecifier
无效。
无法添加范围标头。
示例
下面的代码示例将范围标头添加到请求中。
// Create a New 'HttpWebRequest' object.
HttpWebRequest^ myHttpWebRequest1 =
(HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) );
myHttpWebRequest1->AddRange( 1000);
Console::WriteLine("Call AddRange(1000)");
Console::Write("Resulting Headers: ");
Console::WriteLine(myHttpWebRequest1->Headers);
HttpWebRequest^ myHttpWebRequest2 =
(HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) );
myHttpWebRequest2->AddRange(-1000);
Console::WriteLine("Call AddRange(-1000)");
Console::Write("Resulting Headers: ");
Console::WriteLine(myHttpWebRequest2->Headers);
// Create a New 'HttpWebRequest' object .
HttpWebRequest myHttpWebRequest1=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest1.AddRange(1000);
Console.WriteLine("Call AddRange(1000)");
Console.Write("Resulting Headers: ");
Console.WriteLine(myHttpWebRequest1.Headers.ToString());
// Create a New 'HttpWebRequest' object .
HttpWebRequest myHttpWebRequest2=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest2.AddRange(-1000);
Console.WriteLine("Call AddRange(-1000)");
Console.Write("Resulting Headers: ");
Console.WriteLine(myHttpWebRequest2.Headers.ToString());
' A New 'HttpWebRequest' object is created.
Dim myHttpWebRequest1 As HttpWebRequest = WebRequest.Create("http://www.contoso.com")
myHttpWebRequest1.AddRange(1000)
Console.WriteLine("Call AddRange(1000)")
Console.Write("Resulting Headers: ")
Console.WriteLine(myHttpWebRequest1.Headers.ToString())
Dim myHttpWebRequest2 As HttpWebRequest = WebRequest.Create("http://www.contoso.com")
myHttpWebRequest2.AddRange(-1000)
Console.WriteLine("Call AddRange(-1000)")
Console.Write("Resulting Headers: ")
Console.WriteLine(myHttpWebRequest2.Headers.ToString())
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加字节范围标头。
如果 range
为正值,则 range
参数指定范围的起点。 服务器应开始从指定的 range
参数将数据发送到 HTTP 实体中的数据末尾。
如果 range
为负值,则 range
参数指定范围的结束点。 服务器应开始将数据从 HTTP 实体中的数据开头发送到指定的 range
参数。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
HTTP 协议请求中请求服务器发送前 100 个字节(从头到字节位置 99)的 Range 标头的示例如下:
Range: bytes=0-99\r\n\r\n
对于此示例,range
参数为 -99。
HTTP 服务器指示对具有 Accept-Ranges 标头的范围标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(Int64)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将字节范围标头添加到从所请求数据的开头或末尾对特定范围的请求。
public:
void AddRange(long range);
public void AddRange (long range);
member this.AddRange : int64 -> unit
Public Sub AddRange (range As Long)
参数
- range
- Int64
范围的起点或终点。
例外
rangeSpecifier
无效。
无法添加范围标头。
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加字节范围标头。
如果 range
为正值,则 range
参数指定范围的起点。 服务器应开始从指定的 range
参数将数据发送到 HTTP 实体中的数据末尾。
如果 range
为负值,则 range
参数指定范围的结束点。 服务器应开始将数据从 HTTP 实体中的数据开头发送到指定的 range
参数。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
HTTP 协议请求中请求服务器发送前 100 个字节(从头到字节位置 99)的 Range 标头的示例如下:
Range: bytes=0-99\r\n\r\n
对于此示例,range
参数为 -99。
HTTP 服务器指示对具有 Accept-Ranges 标头的范围标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(Int32, Int32)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将字节范围标头添加到指定范围的请求中。
public:
void AddRange(int from, int to);
public void AddRange (int from, int to);
member this.AddRange : int * int -> unit
Public Sub AddRange (from As Integer, to As Integer)
参数
- from
- Int32
开始发送数据的位置。
- to
- Int32
停止发送数据的位置。
例外
rangeSpecifier
无效。
无法添加范围标头。
示例
下面的代码示例将范围标头添加到请求中。
// Create a New 'HttpWebRequest' object.
HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) );
myHttpWebRequest->AddRange( 50, 150 );
Console::WriteLine("Call AddRange(50, 150)");
Console::Write("Resulting Request Headers: ");
Console::WriteLine(myHttpWebRequest->Headers);
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() );
// Displays the headers in the response received
Console::Write("Resulting Response Headers: ");
Console::WriteLine(myHttpWebResponse->Headers);
// Display the contents of the page to the console.
Stream^ streamResponse = myHttpWebResponse->GetResponseStream();
StreamReader^ streamRead = gcnew StreamReader( streamResponse );
array<Char>^ readBuffer = gcnew array<Char>(256);
int count = streamRead->Read( readBuffer, 0, 256 );
Console::WriteLine( "\nThe HTML contents of the page from 50th to 150 charaters are :\n " );
while ( count > 0 )
{
String^ outputData = gcnew String( readBuffer,0,count );
Console::WriteLine( outputData );
count = streamRead->Read( readBuffer, 0, 256 );
}
streamRead->Close();
streamResponse->Close();
myHttpWebResponse->Close();
// Create a New 'HttpWebRequest' object .
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest.AddRange(50,150);
Console.WriteLine("Call AddRange(50,150)");
Console.Write("Resulting Request Headers: ");
Console.WriteLine(myHttpWebRequest.Headers.ToString());
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
// Displays the headers in the response received
Console.Write("Resulting Response Headers: ");
Console.WriteLine(myHttpWebResponse.Headers.ToString());
// Display the contents of the page to the console.
Stream streamResponse=myHttpWebResponse.GetResponseStream();
StreamReader streamRead = new StreamReader( streamResponse );
Char[] readBuffer = new Char[256];
int count = streamRead.Read( readBuffer, 0, 256 );
Console.WriteLine("\nThe HTML contents of the page from 50th to 150 characters are :\n ");
while (count > 0)
{
String outputData = new String(readBuffer, 0, count);
Console.WriteLine(outputData);
count = streamRead.Read(readBuffer, 0, 256);
}
// Release the response object resources.
streamRead.Close();
streamResponse.Close();
myHttpWebResponse.Close();
' A New 'HttpWebRequest' objetc is created.
Dim myHttpWebRequest As HttpWebRequest = WebRequest.Create("http://www.contoso.com")
myHttpWebRequest.AddRange(50, 150)
Console.WriteLine("Call AddRange(50, 150)")
Console.Write("Resulting Request Headers: ")
Console.WriteLine(myHttpWebRequest.Headers.ToString())
' The response object of 'HttpWebRequest' is assigned to a 'HttpWebResponse' variable.
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
' Displays the headers in the response received
Console.Write("Resulting Response Headers: ")
Console.WriteLine(myHttpWebResponse.Headers.ToString())
' Displaying the contents of the page to the console
Dim streamResponse As Stream = myHttpWebResponse.GetResponseStream()
Dim streamRead As New StreamReader(streamResponse)
Dim readBuffer(256) As [Char]
Dim count As Integer = streamRead.Read(readBuffer, 0, 256)
Console.WriteLine(ControlChars.Cr + "The HTML contents of the page from 50th to 150 charaters are :" + ControlChars.Cr + " ")
While count > 0
Dim outputData As New [String](readBuffer, 0, count)
Console.WriteLine(outputData)
count = streamRead.Read(readBuffer, 0, 256)
End While
' Release the response object resources.
streamRead.Close()
streamResponse.Close()
myHttpWebResponse.Close()
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加字节范围标头。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
HTTP 协议请求中请求前 100 个字节的范围标头的示例如下:
Range: bytes=0-99\r\n\r\n
对于此示例,from
参数将指定为 0,to
参数将指定为 99。 此方法自动将范围说明符设置为“bytes”。
HTTP 服务器指示对具有 Accept-Ranges 标头的范围标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(Int64, Int64)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将字节范围标头添加到指定范围的请求中。
public:
void AddRange(long from, long to);
public void AddRange (long from, long to);
member this.AddRange : int64 * int64 -> unit
Public Sub AddRange (from As Long, to As Long)
参数
- from
- Int64
开始发送数据的位置。
- to
- Int64
停止发送数据的位置。
例外
rangeSpecifier
无效。
无法添加范围标头。
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加字节范围标头。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
HTTP 协议请求中请求前 100 个字节的范围标头的示例如下:
Range: bytes=0-99\r\n\r\n
对于此示例,from
参数将指定为 0,to
参数将指定为 99。 此方法自动将范围说明符设置为“bytes”。
HTTP 服务器指示对具有 Accept-Ranges 标头的范围标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(String, Int32)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将 Range 标头添加到从所请求数据的开始或结尾到特定范围的请求。
public:
void AddRange(System::String ^ rangeSpecifier, int range);
public void AddRange (string rangeSpecifier, int range);
member this.AddRange : string * int -> unit
Public Sub AddRange (rangeSpecifier As String, range As Integer)
参数
- rangeSpecifier
- String
范围的说明。
- range
- Int32
范围的起点或终点。
例外
rangeSpecifier
null
。
rangeSpecifier
无效。
无法添加范围标头。
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加 Range 标头。
如果 range
为正值,则 range
参数指定范围的起点。 服务器应开始从指定的 range
参数将数据发送到 HTTP 实体中的数据末尾。
如果 range
为负值,则 range
参数指定范围的结束点。 服务器应开始将数据从 HTTP 实体中的数据开头发送到指定的 range
参数。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
通常将 rangeSpecifier
参数指定为“bytes”,因为这是大多数 HTTP 服务器识别的唯一范围说明符。 将 rangeSpecifier
参数设置为其他一些字符串可支持除字节以外的自定义范围说明符(IETF 在 RFC 2616 中定义的字节范围说明符)。
HTTP 协议请求中请求前 100 个字节的范围标头的示例如下:
Range: bytes=-99\r\n\r\n
对于此示例,rangeSpecifier
参数将指定为“bytes”,range
参数为 -99。
HTTP 服务器指示对响应中具有 Accept-Ranges 标头的 Range 标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(String, Int64)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将 Range 标头添加到从所请求数据的开始或结尾到特定范围的请求。
public:
void AddRange(System::String ^ rangeSpecifier, long range);
public void AddRange (string rangeSpecifier, long range);
member this.AddRange : string * int64 -> unit
Public Sub AddRange (rangeSpecifier As String, range As Long)
参数
- rangeSpecifier
- String
范围的说明。
- range
- Int64
范围的起点或终点。
例外
rangeSpecifier
null
。
rangeSpecifier
无效。
无法添加范围标头。
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加 Range 标头。
如果 range
为正值,则 range
参数指定范围的起点。 服务器应开始从指定的 range
参数将数据发送到 HTTP 实体中的数据末尾。
如果 range
为负值,则 range
参数指定范围的结束点。 服务器应开始将数据从 HTTP 实体中的数据开头发送到指定的 range
参数。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
通常将 rangeSpecifier
参数指定为“bytes”,因为这是大多数 HTTP 服务器识别的唯一范围说明符。 将 rangeSpecifier
参数设置为其他一些字符串可支持除字节以外的自定义范围说明符(IETF 在 RFC 2616 中定义的字节范围说明符)。
HTTP 协议请求中请求前 100 个字节的范围标头的示例如下:
Range: bytes=-99\r\n\r\n
对于此示例,rangeSpecifier
参数将指定为“bytes”,range
参数为 -99。
HTTP 服务器指示对响应中具有 Accept-Ranges 标头的 Range 标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(String, Int32, Int32)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将范围标头添加到指定范围的请求中。
public:
void AddRange(System::String ^ rangeSpecifier, int from, int to);
public void AddRange (string rangeSpecifier, int from, int to);
member this.AddRange : string * int * int -> unit
Public Sub AddRange (rangeSpecifier As String, from As Integer, to As Integer)
参数
- rangeSpecifier
- String
范围的说明。
- from
- Int32
开始发送数据的位置。
- to
- Int32
停止发送数据的位置。
例外
rangeSpecifier
null
。
rangeSpecifier
无效。
无法添加范围标头。
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加 Range 标头。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
通常将 rangeSpecifier
参数指定为“bytes”,因为这是大多数 HTTP 服务器识别的唯一范围说明符。 将 rangeSpecifier
参数设置为其他一些字符串可支持除字节以外的自定义范围说明符(IETF 在 RFC 2616 中定义的字节范围说明符)。
HTTP 协议请求中请求前 100 个字节的范围标头的示例如下:
Range: bytes=0-99\r\n\r\n
对于此示例,rangeSpecifier
参数将指定为“bytes”,from
参数为 0,to
参数为 99。
HTTP 服务器指示对响应中具有 Accept-Ranges 标头的 Range 标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
在 Accept-Ranges 标头中指定的字符串是在此方法的 rangeSpecifier
参数中指定的范围说明符。
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。
另请参阅
适用于
AddRange(String, Int64, Int64)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
将范围标头添加到指定范围的请求中。
public:
void AddRange(System::String ^ rangeSpecifier, long from, long to);
public void AddRange (string rangeSpecifier, long from, long to);
member this.AddRange : string * int64 * int64 -> unit
Public Sub AddRange (rangeSpecifier As String, from As Long, to As Long)
参数
- rangeSpecifier
- String
范围的说明。
- from
- Int64
开始发送数据的位置。
- to
- Int64
停止发送数据的位置。
例外
rangeSpecifier
null
。
rangeSpecifier
无效。
无法添加范围标头。
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
HttpWebRequest.AddRange 方法向请求添加 Range 标头。
由于所有 HTTP 实体都以 HTTP 消息形式表示为字节序列,因此字节范围的概念对任何 HTTP 实体都有意义。 但是,并非所有客户端和服务器都需要支持字节范围操作。
请求上的 Range 标头允许客户端请求它只希望接收 HTTP 实体中指定字节范围的一部分。 不支持 Range 标头请求不需要服务器。
通常将 rangeSpecifier
参数指定为“bytes”,因为这是大多数 HTTP 服务器识别的唯一范围说明符。 将 rangeSpecifier
参数设置为其他一些字符串可支持除字节以外的自定义范围说明符(IETF 在 RFC 2616 中定义的字节范围说明符)。
HTTP 协议请求中请求前 100 个字节的范围标头的示例如下:
Range: bytes=0-99\r\n\r\n
对于此示例,rangeSpecifier
参数将指定为“bytes”,from
参数为 0,to
参数为 99。
HTTP 服务器指示对响应中具有 Accept-Ranges 标头的 Range 标头的支持。 支持字节范围的服务器的 Accept-Ranges 标头示例如下所示:
Accept-Ranges: bytes\r\n\r\n
在 Accept-Ranges 标头中指定的字符串是在此方法的 rangeSpecifier
参数中指定的范围说明符。
如果在服务器的响应标头中未收到 Accept-Ranges 标头,则服务器不支持 Range 标头。 不支持范围但识别 Accept-Ranges 标头的服务器 Accept-Ranges 标头的示例如下所示:
Accept-Ranges: none\r\n\r\n
从范围请求接收响应时,仅分析与整个请求关联的 HTTP 标头,并通过 HttpWebResponse 类上的属性提供。 与每个范围关联的标头在响应中返回。