Condividi tramite


HttpWebRequest Classe

Definizione

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à
HttpWebRequest
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 Accept 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 Connection HTTP.

ConnectionGroupName

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

ContentLength

Ottiene o imposta l'intestazione Content-length HTTP.

ContentType

Ottiene o imposta il valore dell'intestazione Content-type 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.

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 Date HTTP da utilizzare 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 l'impostazione predefinita per la MaximumResponseHeadersLength proprietà .

Expect

Ottiene o imposta il valore dell'intestazione Expect 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 If-Modified-Since 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.

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 Referer 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 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 Transfer-encoding HTTP.

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 User-agent HTTP.

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.

Si applica a

Vedi anche