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 WebRequest classe .
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 oggetto HttpWebRequest per l'URI 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
ServicePoint, HttpWebRequest, e WebClient sono obsoleti e non è consigliabile usarli per il nuovo sviluppo. Utilizzare invece HttpClient.
La HttpWebRequest classe 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 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 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 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 da 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 |
Impostata dalla Accept proprietà . |
Connection |
Impostata dalla Connection proprietà , KeepAlive proprietà . |
Content-Length |
Impostata dalla ContentLength proprietà . |
Content-Type |
Impostata dalla ContentType proprietà . |
Expect |
Impostata dalla Expect proprietà . |
Date |
Impostato dal sistema sulla data corrente. |
Host |
Impostare dal sistema sulle informazioni sull'host corrente. |
If-Modified-Since |
Impostata dalla IfModifiedSince proprietà . |
Range |
Impostato dal AddRange metodo . |
Referer |
Impostata dalla Referer proprietà . |
Transfer-Encoding |
Impostata dalla TransferEncoding proprietà (la SendChunked proprietà deve essere true). |
User-Agent |
Impostata 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 file di configurazione del computer locale o 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 usa 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, il 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.
Per le app che usano TLS/SSL tramite API come HttpClient, HttpWebRequest, FTPClient, SmtpClient e SsStream, .NET blocca algoritmi di crittografia e hash non sicuri per le connessioni per impostazione predefinita. Potrebbe essere necessario rifiutare esplicitamente questo comportamento per mantenere l'interoperabilità con i servizi SSL3 O TLS w/ RC4 esistenti. Impossibile connettersi a un server usando le API ServicePointManager o SslStream dopo l'aggiornamento a .NET Framework 4.6 spiega come modificare il codice per disabilitare questo comportamento, se necessario.
Costruttori
| Nome | Descrizione |
|---|---|
| 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 HttpWebRequest classe dalle istanze specificate delle SerializationInfo classi e StreamingContext . Questo costruttore è obsoleto. |
Proprietà
| Nome | Descrizione |
|---|---|
| Accept |
Ottiene o imposta il valore dell'intestazione |
| 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 |
| ConnectionGroupName |
Ottiene o imposta il nome del gruppo di connessione per la richiesta. |
| ContentLength |
Ottiene o imposta l'intestazione |
| ContentType |
Ottiene o imposta il valore dell'intestazione |
| 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.
Quando sottoposto a override in una classe discendente, ottiene l'oggetto factory derivato dalla IWebRequestCreate classe utilizzata per creare l'istanza WebRequest di 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 |
| 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 l'impostazione predefinita per la MaximumResponseHeadersLength proprietà . |
| Expect |
Ottiene o imposta il valore dell'intestazione |
| 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 |
| 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. |
| 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 |
| 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 oggetto CookieContainer. |
| Timeout |
Ottiene o imposta il valore di timeout in millisecondi per i GetResponse() metodi e GetRequestStream() . |
| TransferEncoding |
Ottiene o imposta il valore dell'intestazione |
| UnsafeAuthenticatedConnectionSharing |
Ottiene o imposta un valore che indica se consentire la condivisione di connessioni NTLM ad alta velocità. |
| UseDefaultCredentials |
Ottiene o imposta un Boolean valore che controlla se le credenziali predefinite vengono inviate con richieste. |
| UserAgent |
Ottiene o imposta il valore dell'intestazione |
Metodi
| Nome | Descrizione |
|---|---|
| Abort() |
Annulla una richiesta a una risorsa Internet. |
| AddRange(Int32, Int32) |
Aggiunge un'intestazione di intervallo di byte alla richiesta di un intervallo specificato. |
| 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(Int64, Int64) |
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(String, Int32, Int32) |
Aggiunge un'intestazione di intervallo a una richiesta per 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, Int64, Int64) |
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. |
| BeginGetRequestStream(AsyncCallback, Object) |
Avvia una richiesta asincrona per un Stream oggetto 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, TransportContext) |
Termina una richiesta asincrona per un Stream oggetto da utilizzare per scrivere dati e restituisce l'oggetto TransportContext associato al flusso. |
| EndGetRequestStream(IAsyncResult) |
Termina una richiesta asincrona per un Stream oggetto da utilizzare per scrivere dati. |
| 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 WebRequest di . |
| 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 oggetto con i dati necessari per serializzare l'oggetto di destinazione. |
| GetRequestStream() |
Ottiene un Stream oggetto da utilizzare per scrivere i dati della richiesta. |
| GetRequestStream(TransportContext) |
Ottiene un Stream oggetto da utilizzare per scrivere i dati della richiesta e restituisce l'oggetto TransportContext associato al flusso. |
| GetRequestStreamAsync() |
Quando sottoposto a override in una classe discendente, restituisce un oggetto Stream per la scrittura di dati nella risorsa Internet come operazione asincrona. (Ereditato da WebRequest) |
| GetResponse() |
Restituisce una risposta da una risorsa Internet. |
| 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 corrente MarshalByRefObject . (Ereditato da MarshalByRefObject) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
Obsoleti.
Obsoleti.
Popola un SerializationInfo oggetto con i dati necessari per serializzare l'oggetto di destinazione. |