HttpWebRequest Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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
, ServicePoint
e 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. |