Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo HttpWebRequest.AddRange (Int32, Int32)

 

Data di pubblicazione: ottobre 2016

Aggiunge un'intestazione di intervallo di byte alla richiesta per un intervallo specifico.

Spazio dei nomi:   System.Net
Assembly:  System (in System.dll)

public void AddRange(
	int from,
	int to
)

Parametri

from
Type: System.Int32

Posizione in cui avviare l'invio dei dati.

to
Type: System.Int32

Posizione in cui arrestare l'invio dei dati.

Exception Condition
ArgumentException

rangeSpecifier non è valido.

ArgumentOutOfRangeException

from è maggiore di to

-oppure-

from o to è minore di 0.

InvalidOperationException

Non è stato possibile aggiungere l'intestazione di intervallo.

Il HttpWebRequest.AddRange metodo aggiunge un'intestazione di intervallo di byte alla richiesta.

Poiché tutte le entità HTTP sono rappresentate nei messaggi HTTP come sequenze di byte, il concetto di un intervallo di byte è significativo per qualsiasi entità HTTP. Tuttavia, non tutti i client e server necessari supportare l'intervallo di byte.

L'intestazione Range in una richiesta consente al client richiedere che desidera ricevere solo alcune parti dell'intervallo specificato di byte in un'entità HTTP. Non sono necessari server per supportare le richieste di intestazione di intervallo.

Un esempio di un'intestazione di intervallo in una richiesta di protocollo HTTP che le richieste dei primi 100 byte potrebbe essere il seguente:

Range: bytes=0-99\r\n\r\n

Per questo esempio, il from parametro sarebbe specificato come 0 e to parametro verrebbe specificato come 99. L'identificatore di intervallo viene impostato automaticamente come "byte" da questo metodo.

Un server HTTP indica il supporto per le intestazioni Range con l'intestazione Accept-Ranges. Un esempio di intestazione Accept-Ranges da un server che supporta gli intervalli di byte sarebbe come segue:

Accept-Ranges: bytes\r\n\r\n

Se un'intestazione Accept-Ranges non viene ricevuta nell'intestazione della risposta dal server, il server non supporta le intestazioni Range. Un esempio dell'intestazione Accept-Ranges da un server che non supporta gli intervalli, ma riconosce l'intestazione Accept-Ranges, sarebbe come segue:

Accept-Ranges: none\r\n\r\n

Quando si riceve la risposta da una richiesta di intervallo, solo le intestazioni HTTP associate alla richiesta intera vengono analizzate e rese disponibili tramite la proprietà di HttpWebResponse (classe). Le intestazioni associate a ogni intervallo vengono restituite nella risposta.

Esempio di codice seguente aggiunge un'intestazione di intervallo alla richiesta.

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

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: