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 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à
- 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
È consigliabile non usare HttpWebRequest
per nuovi sviluppi. 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 . Utilizzare 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 oggetto HttpWebResponse contenente 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 le condizioni seguenti contengono: 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 limitato. Se nessuna delle condizioni indicate mantiene o viene superato il tempo di scarico, il socket verrà chiuso. Per le connessioni keep-alive o pipelined, è consigliabile che l'applicazione legga i flussi fino a EOF. In questo modo si garantisce che il socket venga riutilizzato per le richieste successive, con prestazioni migliori e meno risorse usate.
Quando si desidera inviare dati alla risorsa, il GetRequestStream metodo restituisce un Stream oggetto da utilizzare 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'eccezione 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à, impostati dai metodi o impostati 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 | Impostato da |
---|---|
Accept |
Impostato dalla Accept proprietà . |
Connection |
Impostata 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 sulla data corrente. |
Host |
Impostare dal sistema sulle informazioni sull'host corrente. |
If-Modified-Since |
Impostato dalla IfModifiedSince proprietà . |
Range |
Impostato dal AddRange metodo . |
Referer |
Impostato dalla Referer proprietà . |
Transfer-Encoding |
Impostata dalla TransferEncoding proprietà (la SendChunked proprietà deve essere true ). |
User-Agent |
Impostato dalla UserAgent proprietà . |
Nota
HttpWebRequest viene registrato automaticamente. Non è necessario chiamare il metodo per eseguire la RegisterPrefix registrazione System.Net.HttpWebRequest prima di usare gli URI che iniziano con http://
o https://
.
Il computer locale o il file di configurazione dell'applicazione può specificare che viene usato un proxy predefinito. Se la Proxy proprietà viene specificata, le impostazioni proxy della Proxy proprietà sostituiscono il computer locale o il file di configurazione dell'applicazione e l'istanza HttpWebRequest userà le impostazioni proxy specificate. Se non viene specificato alcun proxy in un file di configurazione e la Proxy proprietà non è specificata, la HttpWebRequest classe 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 man mano che vengono create 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 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. Per impostazione predefinita, le applicazioni che usano TLS/SSL tramite API, ad esempio HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream e per .NET Framework 4.6, ottengono il comportamento più sicuro.
Gli sviluppatori potrebbero voler rifiutare esplicitamente questo comportamento per mantenere l'interoperabilità con i servizi SSL3 esistenti O TLS w/ RC4. Questo articolo illustra 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 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 |
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 |
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 |
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 |
Obsoleti.
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 |
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 |
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 |
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 |
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 |
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 |
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() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
Obsoleti.
Obsoleti.
Popola un oggetto SerializationInfo con i dati richiesti per serializzare l'oggetto di destinazione. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
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() |
Obsoleti.
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) |
Obsoleti.
Obsoleti.
Obsoleti.
Popola un oggetto 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 usare per scopi di telemetria. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
Imposta i metadati per le richieste in uscita da usare per scopi di telemetria. |
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per