HttpWebRequest Classe

Definizione

Fornisce un'implementazione specifica di 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 creato un HttpWebRequest oggetto 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

Importante

Non è consigliabile usare HttpWebRequest per il nuovo sviluppo. Usare invece la System.Net.Http.HttpClient classe .

La HttpWebRequest classe fornisce il 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 HttpWebRequest costruttore. Usare il WebRequest.Create metodo per inizializzare nuovi HttpWebRequest oggetti. Se lo schema per l'URI (Uniform Resource Identifier) è http:// o https://, Create restituisce un HttpWebRequest oggetto.

Il GetResponse metodo effettua una richiesta sincrona alla risorsa specificata nella RequestUri proprietà e restituisce un HttpWebResponse oggetto contenente l'oggetto response. 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 risposta o il flusso se le condizioni seguenti contengono: è una richiesta keep-alive o pipelined, è necessario ricevere solo una piccola quantità di dati o i dati rimanenti vengono ricevuti in un intervallo di tempo ridotto. Se nessuna delle condizioni indicate mantiene o il tempo di scarico viene superato, il socket verrà chiuso. Per le connessioni keep-alive o pipelined, è consigliabile che l'applicazione legge i flussi fino a quando EOF. Ciò garantisce che il socket venga riutilizzato per le richieste successive, causando prestazioni migliori e meno risorse usate.

Quando si desidera inviare dati alla risorsa, il GetRequestStream metodo restituisce un Stream oggetto da usare per inviare dati. I BeginGetRequestStream metodi 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 HttpWebRequest classe genera un oggetto WebException quando si verificano errori durante l'accesso a una risorsa. La WebException.Status proprietà contiene un WebExceptionStatus valore che indica l'origine dell'errore. Quando WebException.Status è WebExceptionStatus.ProtocolError, la Response proprietà contiene l'oggetto HttpWebResponse ricevuto dalla risorsa.

HttpWebRequest espone i valori di intestazione HTTP comuni inviati alla risorsa Internet come proprietà, impostate da metodi o impostate dal sistema; la tabella seguente contiene un elenco completo. È possibile impostare altre intestazioni nella Headers proprietà 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 Imposta per
Accept Impostato dalla Accept proprietà .
Connection Impostato dalla Connection proprietà , KeepAlive proprietà .
Content-Length Impostato dalla ContentLength proprietà .
Content-Type Impostato dalla ContentType proprietà .
Expect Impostato dalla Expect proprietà .
Date Impostato dal sistema su data corrente.
Host Impostare dal sistema su informazioni host correnti.
If-Modified-Since Impostato dalla IfModifiedSince proprietà .
Range Impostato dal AddRange metodo .
Referer Impostato dalla Referer proprietà .
Transfer-Encoding Impostato dalla TransferEncoding proprietà (la SendChunked proprietà deve essere true).
User-Agent Impostato dalla UserAgent proprietà .

Nota

HttpWebRequest viene registrato automaticamente. Non è necessario chiamare il RegisterPrefix metodo 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 la Proxy proprietà è specificata, le impostazioni proxy della Proxy proprietà eseguono l'override del file di configurazione del computer locale o dell'applicazione e l'istanza HttpWebRequest userà le impostazioni proxy specificate. Se non viene specificato alcun proxy in un file di configurazione e la proprietà non è specificata, la Proxy HttpWebRequest classe usa le impostazioni proxy ereditate da Internet Explorer nel computer locale. Se non sono presenti impostazioni proxy in Internet Explorer, la richiesta viene inviata direttamente al server.

La HttpWebRequest classe analizza un elenco di bypass proxy con caratteri jolly ereditati da Internet Explorer in modo diverso rispetto all'elenco di bypass analizzato direttamente da Internet Explorer. Ad esempio, la HttpWebRequest classe analizzerà un elenco di bypass di "nt*" da Internet Explorer come espressione regolare di "nt.$". Ciò è diverso dal comportamento nativo di Internet Explorer. Quindi un URL di "http://intxxxxx" ignora il proxy usando la HttpWebRequest classe, ma non ignora il proxy usando Internet Explorer.

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 vengono disabilitati per impostazione predefinita. Se si desidera usare i cookie, usare la CookieContainer proprietà 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, nonché la destinazione di .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 propri servizi SSL3 O i servizi TLS w/ RC4 esistenti. Questo articolo illustra come modificare il codice in modo che il nuovo comportamento sia disabilitato.

Costruttori

HttpWebRequest()
Obsoleta.
Obsoleta.

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

HttpWebRequest(SerializationInfo, StreamingContext)
Obsoleta.
Obsoleta.
Obsoleta.
Obsoleta.
Obsoleta.

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

HttpWebRequest(Uri)

Proprietà

Accept

Ottiene o imposta il valore dell'intestazione HTTP Accept.

Address

Ottiene l'URI 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 i dati ricevuti 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 i valori che indicano il livello di autenticazione e di rappresentazione usati per la richiesta.

(Ereditato da WebRequest)
AutomaticDecompression

Ottiene o imposta il tipo di decompressione usato.

CachePolicy

Ottiene o imposta i criteri della cache per la richiesta.

(Ereditato da WebRequest)
ClientCertificates

Ottiene o imposta la raccolta dei certificati di sicurezza associati alla 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

Quando ne viene eseguito l'override in una classe discendente, ottiene o imposta il nome del gruppo di connessione usato per la richiesta.

(Ereditato da WebRequest)
ContentLength

Ottiene o imposta l'intestazione HTTP di Content-length.

ContentLength

Quando ne viene eseguito l'override in una classe discendente, ottiene o imposta la lunghezza dei dati inviati per la richiesta.

(Ereditato da WebRequest)
ContentType

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

ContinueDelegate

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

ContinueTimeout

Ottiene o imposta un valore di timeout in millisecondi di attesa dopo la ricezione di 100-Continue dal server.

CookieContainer

Ottiene o imposta i cookie associati alla richiesta.

CreatorInstance
Obsoleta.

Quando ne viene eseguito l'override in una classe discendente, ottiene l'oggetto factory derivato dalla classe IWebRequestCreate usato per creare l'oggetto WebRequest di cui è stata creata un'istanza per effettuare la richiesta all'URI specificato.

(Ereditato da WebRequest)
Credentials

Ottiene o imposta le informazioni sull'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 predefiniti della cache per la 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 compongono le intestazioni HTTP.

Host

Ottiene o imposta il valore dell'intestazione relativa all'host da usare 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 effettuare 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 inviare la richiesta tramite pipeline alla risorsa Internet.

PreAuthenticate

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

PreAuthenticate

Quando ne viene eseguito l'override in una classe discendente, indica se è necessario preautenticare la richiesta.

(Ereditato da WebRequest)
ProtocolVersion

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

Proxy

Ottiene o imposta le informazioni sul proxy per la richiesta.

Proxy

Quando ne viene eseguito l'override in una classe discendente, ottiene o imposta il proxy di rete per accedere alla risorsa Internet.

(Ereditato da WebRequest)
ReadWriteTimeout

Ottiene o imposta un timeout in millisecondi quando si scrive in o si legge da un flusso.

Referer

Ottiene o imposta il valore dell'intestazione HTTP Referer.

RequestUri

Ottiene l'URI originale della richiesta.

SendChunked

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

ServerCertificateValidationCallback

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

ServicePoint

Ottiene il punto di servizio da usare per la richiesta.

SupportsCookieContainer

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

Timeout

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

Timeout

Ottiene o imposta il periodo di tempo, 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 connessione con autenticazione NTLM ad alta velocità.

UseDefaultCredentials

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

UseDefaultCredentials

Quando ne viene eseguito l'override in una classe discendente, ottiene o imposta un valore Boolean che controlla se vengono inviate proprietà DefaultCredentials 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, a partire dall'inizio o dalla fine dei dati richiesti.

AddRange(Int32, Int32)

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

AddRange(Int64)

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

AddRange(Int64, Int64)

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

AddRange(String, Int32)

Aggiunge un'intestazione relativa all'intervallo a una richiesta per un intervallo specifico, a partire dall'inizio o dalla fine dei dati richiesti.

AddRange(String, Int32, Int32)

Aggiunge un'intestazione di intervallo di byte a una richiesta per un intervallo specifico.

AddRange(String, Int64)

Aggiunge un'intestazione relativa all'intervallo a una richiesta per un intervallo specifico, a partire dall'inizio o dalla fine dei dati richiesti.

AddRange(String, Int64, Int64)

Aggiunge un'intestazione di intervallo di byte a una richiesta per un intervallo specifico.

BeginGetRequestStream(AsyncCallback, Object)

Avvia una richiesta asincrona per un oggetto Stream da usare per la scrittura dei dati.

BeginGetResponse(AsyncCallback, Object)

Avvia una richiesta asincrona a una risorsa Internet.

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Termina una richiesta asincrona per un oggetto Stream da usare per la scrittura dei dati.

EndGetRequestStream(IAsyncResult, TransportContext)

Termina una richiesta asincrona per un oggetto Stream da usare per scrivere dati e restituisce l'oggetto TransportContext associato 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()
Obsoleta.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

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

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

GetObjectData(SerializationInfo, StreamingContext)
Obsoleta.

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

(Ereditato da WebRequest)
GetRequestStream()

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

GetRequestStream()

Quando ne viene eseguito l'override in una classe discendente, restituisce un oggetto Stream per la scrittura di dati nella risorsa Internet.

(Ereditato da WebRequest)
GetRequestStream(TransportContext)

Ottiene un oggetto Stream da usare per scrivere i dati della richiesta e restituisce l'oggetto TransportContext associato al flusso.

GetRequestStreamAsync()

Quando ne viene eseguito l'override in una classe discendente, restituisce un oggetto Stream per la scrittura dei dati nella risorse Internet come operazione asincrona.

(Ereditato da WebRequest)
GetResponse()

Restituisce una risposta da una risorsa Internet.

GetResponse()

Quando ne viene eseguito l'override in una classe discendente, restituisce una risposta a una richiesta Internet.

(Ereditato da WebRequest)
GetResponseAsync()

Quando ne viene eseguito l'override in una classe discendente, restituisce una risposta a una richiesta Internet come operazione asincrona.

(Ereditato da WebRequest)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleta.

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

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti 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)
Obsoleta.
Obsoleta.
Obsoleta.

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

Si applica a

Vedi anche