HttpWebRequest.GetRequestStream Metodo

Definizione

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

Overload

GetRequestStream()

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

GetRequestStream(TransportContext)

Ottiene un oggetto Stream da utilizzare per scrivere i dati della richiesta e restituisce il TransportContext associato al flusso.

GetRequestStream()

Origine:
HttpWebRequest.cs
Origine:
HttpWebRequest.cs
Origine:
HttpWebRequest.cs

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

public:
 override System::IO::Stream ^ GetRequestStream();
public override System.IO.Stream GetRequestStream ();
override this.GetRequestStream : unit -> System.IO.Stream
Public Overrides Function GetRequestStream () As Stream

Restituisce

Un Stream da usare per scrivere i dati delle richieste.

Eccezioni

La proprietà Method è GET o HEAD.

-o-

KeepAlive è true, AllowWriteStreamBuffering è false, ContentLength è -1, SendChunked è falsee Method è POST o PUT.

Il metodo GetRequestStream() viene chiamato più volte.

-o-

TransferEncoding è impostato su un valore e SendChunked è false.

Il validator della cache delle richieste ha indicato che la risposta per questa richiesta può essere servita dalla cache; Tuttavia, le richieste che scrivono dati non devono usare la cache. Questa eccezione può verificarsi se si usa un validator di cache personalizzato implementato in modo non corretto.

Abort() è stato chiamato in precedenza.

-o-

Periodo di timeout per la richiesta scaduta.

-o-

Errore durante l'elaborazione della richiesta.

In un'applicazione .NET Compact Framework un flusso di richieste con lunghezza zero del contenuto non è stato ottenuto e chiuso correttamente. Per altre informazioni sulla gestione delle richieste di lunghezza del contenuto zero, vedere Programmazione di rete in .NET Compact Framework.

Esempio

Nell'esempio di codice seguente viene usato il metodo GetRequestStream per restituire un'istanza del flusso.

// Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest->Method = "POST";
Console::WriteLine( "\nPlease enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :" );

// Create a new String* Object* to POST data to the Url.
String^ inputData = Console::ReadLine();

String^ postData = String::Concat( "firstone= ", inputData );
ASCIIEncoding^ encoding = gcnew ASCIIEncoding;
array<Byte>^ byte1 = encoding->GetBytes( postData );

// Set the content type of the data being posted.
myHttpWebRequest->ContentType = "application/x-www-form-urlencoded";

// Set the content length of the String* being posted.
myHttpWebRequest->ContentLength = byte1->Length;

Stream^ newStream = myHttpWebRequest->GetRequestStream();

newStream->Write( byte1, 0, byte1->Length );
Console::WriteLine( "The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest->ContentLength );

// Close the Stream Object*.
newStream->Close();
// Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST";
Console.WriteLine ("\nPlease enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :");

// Create a new string object to POST data to the Url.
string inputData = Console.ReadLine ();


string postData = "firstone=" + inputData;
ASCIIEncoding encoding = new ASCIIEncoding ();
byte[] byte1 = encoding.GetBytes (postData);

// Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";

// Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length;

Stream newStream = myHttpWebRequest.GetRequestStream ();

newStream.Write (byte1, 0, byte1.Length);
Console.WriteLine ("The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest.ContentLength);

// Close the Stream object.
newStream.Close ();
' Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST"

Console.WriteLine(ControlChars.Cr + "Please enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :")
' Create a new string object to POST data to the Url.
Dim inputData As String = Console.ReadLine()
Dim postData As String = "firstone" + ChrW(61) + inputData
Dim encoding As New ASCIIEncoding()
Dim byte1 As Byte() = encoding.GetBytes(postData)
' Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
' Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length
Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
newStream.Write(byte1, 0, byte1.Length)
Console.WriteLine("The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest.ContentLength)
newStream.Close()

Commenti

Cautela

WebRequest, HttpWebRequest, ServicePointe WebClient sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.

Il metodo GetRequestStream restituisce un flusso da usare per inviare dati per l'HttpWebRequest. Dopo aver restituito l'oggetto Stream, è possibile inviare dati con il HttpWebRequest usando il metodo Stream.Write.

Se un'applicazione deve impostare il valore della proprietà ContentLength, è necessario eseguire questa operazione prima di recuperare il flusso.

È necessario chiamare il metodo Stream.Close per chiudere il flusso e rilasciare la connessione per il riutilizzo. Se non si chiude il flusso, l'applicazione esaurisce le connessioni.

Nota

L'applicazione non può combinare metodi sincroni e asincroni per una determinata richiesta. Se si chiama il metodo GetRequestStream, è necessario usare il metodo GetResponse per recuperare la risposta.

Nota

Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Vedi anche

Si applica a

GetRequestStream(TransportContext)

Origine:
HttpWebRequest.cs
Origine:
HttpWebRequest.cs
Origine:
HttpWebRequest.cs

Ottiene un oggetto Stream da utilizzare per scrivere i dati della richiesta e restituisce il TransportContext associato al flusso.

public:
 System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream GetRequestStream (out System.Net.TransportContext? context);
public System.IO.Stream GetRequestStream (out System.Net.TransportContext context);
override this.GetRequestStream : TransportContext -> System.IO.Stream
Public Function GetRequestStream (ByRef context As TransportContext) As Stream

Parametri

Restituisce

Un Stream da usare per scrivere i dati delle richieste.

Eccezioni

Il metodo GetRequestStream() non è riuscito a ottenere il Stream.

Il metodo GetRequestStream() viene chiamato più volte.

-o-

TransferEncoding è impostato su un valore e SendChunked è false.

Il validator della cache delle richieste ha indicato che la risposta per questa richiesta può essere servita dalla cache; Tuttavia, le richieste che scrivono dati non devono usare la cache. Questa eccezione può verificarsi se si usa un validator di cache personalizzato implementato in modo non corretto.

La proprietà Method è GET o HEAD.

-o-

KeepAlive è true, AllowWriteStreamBuffering è false, ContentLength è -1, SendChunked è falsee Method è POST o PUT.

Abort() è stato chiamato in precedenza.

-o-

Periodo di timeout per la richiesta scaduta.

-o-

Errore durante l'elaborazione della richiesta.

Commenti

Cautela

WebRequest, HttpWebRequest, ServicePointe WebClient sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.

Il metodo GetRequestStream restituisce un flusso da usare per inviare dati per il HttpWebRequest e restituisce il TransportContext associato al flusso. Dopo aver restituito l'oggetto Stream, è possibile inviare dati con il HttpWebRequest usando il metodo Stream.Write.

Alcune applicazioni che usano l'autenticazione integrata di Windows con protezione estesa potrebbero essere in grado di eseguire query sul livello di trasporto usato da HttpWebRequest per recuperare il token di associazione del canale (CBT) dal canale TLS sottostante. Il metodo GetRequestStream fornisce l'accesso a queste informazioni per i metodi HTTP che dispongono di un corpo della richiesta (POST e richieste di PUT). Questa operazione è necessaria solo se l'applicazione implementa la propria autenticazione e deve accedere al cbt.

Se un'applicazione deve impostare il valore della proprietà ContentLength, è necessario eseguire questa operazione prima di recuperare il flusso.

È necessario chiamare il metodo Stream.Close per chiudere il flusso e rilasciare la connessione per il riutilizzo. Se non si chiude il flusso, l'applicazione esaurisce le connessioni.

Nota

L'applicazione non può combinare metodi sincroni e asincroni per una determinata richiesta. Se si chiama il metodo GetRequestStream, è necessario usare il metodo GetResponse per recuperare la risposta.

Nota

Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Vedi anche

Si applica a