HttpWebRequest Classe

Definizione

Fornisce un'implementazione specifica http della classe WebRequest.

public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
    inherit WebRequest
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
Ereditarietà
HttpWebRequest
Ereditarietà
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene creata una HttpWebRequest per l'URI http://www.contoso.com/.

HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));

HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");

Dim myReq As HttpWebRequest = _
    WebRequest.Create("http://www.contoso.com/")

Commenti

Cautela

WebRequest, HttpWebRequest, ServicePointe WebClient sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.

La classe HttpWebRequest fornisce supporto per le proprietà e i metodi definiti in WebRequest e per proprietà e metodi aggiuntivi che consentono all'utente di interagire direttamente con i server tramite HTTP.

Non usare il costruttore HttpWebRequest. Utilizzare il metodo WebRequest.Create per inizializzare nuovi oggetti HttpWebRequest. Se lo schema per l'URI (Uniform Resource Identifier) è http:// o https://, Create restituisce un oggetto HttpWebRequest.

Il metodo GetResponse effettua una richiesta sincrona alla risorsa specificata nella proprietà RequestUri e restituisce un HttpWebResponse che contiene l'oggetto risposta. I dati di risposta possono essere ricevuti usando il flusso restituito da GetResponseStream. Se l'oggetto risposta o il flusso di risposta viene chiuso, i dati rimanenti verranno interrotti. I dati rimanenti verranno svuotati e il socket verrà riutilizzato per le richieste successive quando si chiude l'oggetto o il flusso di risposta se sono presenti le condizioni seguenti: si tratta di una richiesta keep-alive o pipeline, è necessario ricevere solo una piccola quantità di dati o i dati rimanenti vengono ricevuti in un intervallo di tempo ridotto. Se nessuna delle condizioni menzionate mantiene o viene superato il tempo di scarico, il socket verrà chiuso. Per le connessioni keep-alive o pipeline, è consigliabile che l'applicazione legga i flussi fino a EOF. In questo modo si garantisce che il socket venga riutilizzato per le richieste successive, ottenendo prestazioni migliori e meno risorse usate.

Quando si desidera inviare dati alla risorsa, il metodo GetRequestStream restituisce un oggetto Stream da utilizzare per inviare dati. I metodi BeginGetRequestStream e EndGetRequestStream forniscono l'accesso asincrono al flusso di dati di invio.

Per l'autenticazione client con HttpWebRequest, il certificato client deve essere installato nell'archivio certificati personale dell'utente corrente.

La classe HttpWebRequest genera un WebException quando si verificano errori durante l'accesso a una risorsa. La proprietà WebException.Status contiene un valore WebExceptionStatus che indica l'origine dell'errore. Quando WebException.Status è WebExceptionStatus.ProtocolError, la proprietà Response contiene il HttpWebResponse ricevuto dalla risorsa.

HttpWebRequest espone i valori di intestazione HTTP comuni inviati alla risorsa Internet come proprietà, impostati da metodi o impostati dal sistema; la tabella seguente contiene un elenco completo. È possibile impostare altre intestazioni nella proprietà Headers come coppie nome/valore. Si noti che i server e le cache possono modificare o aggiungere intestazioni durante la richiesta.

Nella tabella seguente sono elencate le intestazioni HTTP impostate da proprietà o metodi o dal sistema.

Intestazione Impostato da
Accept Impostato dalla proprietà Accept.
Connection Impostata dalla proprietà Connection, KeepAlive proprietà .
Content-Length Impostato dalla proprietà ContentLength.
Content-Type Impostato dalla proprietà ContentType.
Expect Impostato dalla proprietà Expect.
Date Impostato dal sistema sulla data corrente.
Host Impostare dal sistema sulle informazioni sull'host corrente.
If-Modified-Since Impostato dalla proprietà IfModifiedSince.
Range Impostato dal metodo AddRange.
Referer Impostato dalla proprietà Referer.
Transfer-Encoding Impostata dalla proprietà TransferEncoding (la proprietà SendChunked deve essere true).
User-Agent Impostato dalla proprietà UserAgent.

Nota

HttpWebRequest viene registrato automaticamente. Non è necessario chiamare il metodo RegisterPrefix per registrare System.Net.HttpWebRequest prima di usare gli URI che iniziano con http:// o https://.

Il file di configurazione del computer locale o dell'applicazione può specificare che viene usato un proxy predefinito. Se viene specificata la proprietà Proxy, le impostazioni proxy della proprietà Proxy sostituiscono il computer locale o il file di configurazione dell'applicazione e l'istanza di HttpWebRequest userà le impostazioni proxy specificate. Se non viene specificato alcun proxy in un file di configurazione e la proprietà Proxy non è specificata, la classe HttpWebRequest utilizza le impostazioni proxy ereditate dalle opzioni Internet nel computer locale. Se non sono presenti impostazioni proxy nelle opzioni Internet, la richiesta viene inviata direttamente al server.

Nota

Framework memorizza nella cache le sessioni SSL durante la creazione e tenta di riutilizzare una sessione memorizzata nella cache per una nuova richiesta, se possibile. Quando si tenta di riutilizzare una sessione SSL, framework usa il primo elemento di ClientCertificates (se presente) o tenta di riutilizzare una sessione anonima se ClientCertificates è vuoto.

Nota

Per motivi di sicurezza, i cookie sono disabilitati per impostazione predefinita. Se si desidera utilizzare i cookie, utilizzare la proprietà CookieContainer per abilitare i cookie.

.NET Framework 4.6 include una nuova funzionalità di sicurezza che blocca algoritmi di crittografia e hash non sicuri per le connessioni. Le applicazioni che usano TLS/SSL tramite API, ad esempio HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream e così via, e come destinazione .NET Framework 4.6 ottengono il comportamento più sicuro per impostazione predefinita.

Gli sviluppatori potrebbero voler rifiutare esplicitamente questo comportamento per mantenere l'interoperabilità con i servizi SSL3 esistenti O TLS w/ RC4. Questo articolo spiega come modificare il codice in modo che il nuovo comportamento sia disabilitato.

Costruttori

HttpWebRequest()
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della classe HttpWebRequest. Questo costruttore è obsoleto.

HttpWebRequest(SerializationInfo, StreamingContext)
Obsoleti.
Obsoleti.
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della classe HttpWebRequest dalle istanze specificate delle classi SerializationInfo e StreamingContext. Questo costruttore è obsoleto.

Proprietà

Accept

Ottiene o imposta il valore dell'intestazione HTTP Accept.

Address

Ottiene l'URI (Uniform Resource Identifier) della risorsa Internet che risponde effettivamente alla richiesta.

AllowAutoRedirect

Ottiene o imposta un valore che indica se la richiesta deve seguire le risposte di reindirizzamento.

AllowReadStreamBuffering

Ottiene o imposta un valore che indica se memorizzare nel buffer l'oggetto ricevuto dalla risorsa Internet.

AllowWriteStreamBuffering

Ottiene o imposta un valore che indica se memorizzare nel buffer i dati inviati alla risorsa Internet.

AuthenticationLevel

Ottiene o imposta valori che indicano il livello di autenticazione e rappresentazione utilizzati per questa richiesta.

(Ereditato da WebRequest)
AutomaticDecompression

Ottiene o imposta il tipo di decompressione utilizzata.

CachePolicy

Ottiene o imposta i criteri di cache per questa richiesta.

(Ereditato da WebRequest)
ClientCertificates

Ottiene o imposta la raccolta di certificati di sicurezza associati a questa richiesta.

Connection

Ottiene o imposta il valore dell'intestazione HTTP Connection.

ConnectionGroupName

Ottiene o imposta il nome del gruppo di connessione per la richiesta.

ConnectionGroupName

In caso di override in una classe discendente, ottiene o imposta il nome del gruppo di connessione per la richiesta.

(Ereditato da WebRequest)
ContentLength

Ottiene o imposta l'intestazione HTTP Content-length.

ContentLength

Quando sottoposto a override in una classe discendente, ottiene o imposta la lunghezza del contenuto dei dati della richiesta inviati.

(Ereditato da WebRequest)
ContentType

Ottiene o imposta il valore dell'intestazione HTTP Content-type.

ContinueDelegate

Ottiene o imposta il metodo delegato chiamato quando viene ricevuta una risposta HTTP 100-continue dalla risorsa Internet.

ContinueTimeout

Ottiene o imposta un timeout, espresso in millisecondi, per attendere che il 100-Continue venga ricevuto dal server.

CookieContainer

Ottiene o imposta i cookie associati alla richiesta.

CreatorInstance
Obsoleti.

In caso di override in una classe discendente, ottiene l'oggetto factory derivato dalla classe IWebRequestCreate utilizzata per creare l'WebRequest creata un'istanza per effettuare la richiesta all'URI specificato.

(Ereditato da WebRequest)
Credentials

Ottiene o imposta le informazioni di autenticazione per la richiesta.

Date

Ottiene o imposta il valore dell'intestazione HTTP Date da usare in una richiesta HTTP.

DefaultCachePolicy

Ottiene o imposta i criteri di cache predefiniti per questa richiesta.

DefaultMaximumErrorResponseLength

Ottiene o imposta la lunghezza massima predefinita di una risposta di errore HTTP.

DefaultMaximumResponseHeadersLength

Ottiene o imposta il valore predefinito per la proprietà MaximumResponseHeadersLength.

Expect

Ottiene o imposta il valore dell'intestazione HTTP Expect.

HaveResponse

Ottiene un valore che indica se una risposta è stata ricevuta da una risorsa Internet.

Headers

Specifica una raccolta delle coppie nome/valore che costituiscono le intestazioni HTTP.

Host

Ottiene o imposta il valore dell'intestazione Host da utilizzare in una richiesta HTTP indipendente dall'URI della richiesta.

IfModifiedSince

Ottiene o imposta il valore dell'intestazione HTTP If-Modified-Since.

ImpersonationLevel

Ottiene o imposta il livello di rappresentazione per la richiesta corrente.

(Ereditato da WebRequest)
KeepAlive

Ottiene o imposta un valore che indica se stabilire una connessione permanente alla risorsa Internet.

MaximumAutomaticRedirections

Ottiene o imposta il numero massimo di reindirizzamenti che la richiesta segue.

MaximumResponseHeadersLength

Ottiene o imposta la lunghezza massima consentita delle intestazioni di risposta.

MediaType

Ottiene o imposta il tipo di supporto della richiesta.

Method

Ottiene o imposta il metodo per la richiesta.

Pipelined

Ottiene o imposta un valore che indica se eseguire la pipeline della richiesta alla risorsa Internet.

PreAuthenticate

Ottiene o imposta un valore che indica se inviare un'intestazione di autorizzazione con la richiesta.

PreAuthenticate

In caso di override in una classe discendente, indica se pre-autenticare la richiesta.

(Ereditato da WebRequest)
ProtocolVersion

Ottiene o imposta la versione di HTTP da utilizzare per la richiesta.

Proxy

Ottiene o imposta le informazioni sul proxy per la richiesta.

Proxy

Quando sottoposto a override in una classe discendente, ottiene o imposta il proxy di rete da usare per accedere a questa risorsa Internet.

(Ereditato da WebRequest)
ReadWriteTimeout

Ottiene o imposta un timeout in millisecondi durante la scrittura o la lettura da un flusso.

Referer

Ottiene o imposta il valore dell'intestazione HTTP Referer.

RequestUri

Ottiene l'URI (Uniform Resource Identifier) originale della richiesta.

SendChunked

Ottiene o imposta un valore che indica se inviare dati in segmenti alla risorsa Internet.

ServerCertificateValidationCallback

Ottiene o imposta una funzione di callback per convalidare il certificato del server.

ServicePoint

Ottiene il punto di servizio da utilizzare per la richiesta.

SupportsCookieContainer

Ottiene un valore che indica se la richiesta fornisce supporto per un CookieContainer.

Timeout

Ottiene o imposta il valore di timeout in millisecondi per i metodi GetResponse() e GetRequestStream().

Timeout

Ottiene o imposta l'intervallo di tempo, espresso in millisecondi, prima del timeout della richiesta.

(Ereditato da WebRequest)
TransferEncoding

Ottiene o imposta il valore dell'intestazione HTTP Transfer-encoding.

UnsafeAuthenticatedConnectionSharing

Ottiene o imposta un valore che indica se consentire la condivisione di connessioni NTLM ad alta velocità.

UseDefaultCredentials

Ottiene o imposta un valore Boolean che controlla se le credenziali predefinite vengono inviate con richieste.

UseDefaultCredentials

In caso di override in una classe discendente, ottiene o imposta un valore Boolean che controlla se DefaultCredentials vengono inviati con le richieste.

(Ereditato da WebRequest)
UserAgent

Ottiene o imposta il valore dell'intestazione HTTP User-agent.

Metodi

Abort()

Annulla una richiesta a una risorsa Internet.

AddRange(Int32)

Aggiunge un'intestazione di intervallo di byte a una richiesta per un intervallo specifico dall'inizio o dalla fine dei dati richiesti.

AddRange(Int32, Int32)

Aggiunge un'intestazione di intervallo di byte alla richiesta di un intervallo specificato.

AddRange(Int64)

Aggiunge un'intestazione di intervallo di byte a una richiesta per un intervallo specifico dall'inizio o dalla fine dei dati richiesti.

AddRange(Int64, Int64)

Aggiunge un'intestazione di intervallo di byte alla richiesta di un intervallo specificato.

AddRange(String, Int32)

Aggiunge un'intestazione Range a una richiesta per un intervallo specifico dall'inizio o dalla fine dei dati richiesti.

AddRange(String, Int32, Int32)

Aggiunge un'intestazione di intervallo a una richiesta per un intervallo specificato.

AddRange(String, Int64)

Aggiunge un'intestazione Range a una richiesta per un intervallo specifico dall'inizio o dalla fine dei dati richiesti.

AddRange(String, Int64, Int64)

Aggiunge un'intestazione di intervallo a una richiesta per un intervallo specificato.

BeginGetRequestStream(AsyncCallback, Object)

Avvia una richiesta asincrona per un oggetto Stream da utilizzare per scrivere dati.

BeginGetResponse(AsyncCallback, Object)

Avvia una richiesta asincrona a una risorsa Internet.

CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Termina una richiesta asincrona per un oggetto Stream da utilizzare per scrivere dati.

EndGetRequestStream(IAsyncResult, TransportContext)

Termina una richiesta asincrona per un oggetto Stream da usare per scrivere dati e restituisce i TransportContext associati al flusso.

EndGetResponse(IAsyncResult)

Termina una richiesta asincrona a una risorsa Internet.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Restituisce un valore hash per un'istanza di WebRequest.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.
Obsoleti.
Obsoleti.

Popola un SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione.

GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.

Popola un SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione.

(Ereditato da WebRequest)
GetRequestStream()

Ottiene un oggetto Stream da utilizzare per scrivere i dati della richiesta.

GetRequestStream()

Quando sottoposto a override in una classe discendente, restituisce un Stream per la scrittura di dati nella risorsa Internet.

(Ereditato da WebRequest)
GetRequestStream(TransportContext)

Ottiene un oggetto Stream da utilizzare per scrivere i dati della richiesta e restituisce il TransportContext associato al flusso.

GetRequestStreamAsync()

Quando sottoposto a override in una classe discendente, restituisce un Stream per la scrittura di dati nella risorsa Internet come operazione asincrona.

(Ereditato da WebRequest)
GetResponse()

Restituisce una risposta da una risorsa Internet.

GetResponse()

Quando sottoposto a override in una classe discendente, restituisce una risposta a una richiesta Internet.

(Ereditato da WebRequest)
GetResponseAsync()

Quando sottoposto a override in una classe discendente, restituisce una risposta a una richiesta Internet come operazione asincrona.

(Ereditato da WebRequest)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.
Obsoleti.
Obsoleti.

Popola un SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione.

Metodi di estensione

GetRequestMetadata(HttpWebRequest)

Ottiene i metadati per le richieste in uscita da utilizzare a scopo di telemetria.

SetRequestMetadata(HttpWebRequest, RequestMetadata)

Imposta i metadati per le richieste in uscita da usare a scopo di telemetria.

Si applica a

Vedi anche