HttpWebRequest.AddRange 方法

定义

将范围标头添加到请求。

重载

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)

将范围标头添加到指定范围的请求中。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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())

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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 无效。

无法添加范围标头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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 无效。

from 大于 to

-或-

fromto 小于 0。

无法添加范围标头。

示例

下面的代码示例将范围标头添加到请求中。

// 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()

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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 无效。

from 大于 to

-或-

fromto 小于 0。

无法添加范围标头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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 无效。

无法添加范围标头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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 无效。

无法添加范围标头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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

from 大于 to

-或-

fromto 小于 0。

rangeSpecifier 无效。

无法添加范围标头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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

from 大于 to

-或-

fromto 小于 0。

rangeSpecifier 无效。

无法添加范围标头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 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 类上的属性提供。 与每个范围关联的标头在响应中返回。

另请参阅

适用于