HttpWebRequest.GetRequestStream Metoda

Definicja

Pobiera obiekt używany do zapisywania Stream danych żądania.

Przeciążenia

GetRequestStream()

Pobiera obiekt używany do zapisywania Stream danych żądania.

GetRequestStream(TransportContext)

Stream Pobiera obiekt używany do zapisywania danych żądań i danych wyjściowych TransportContext skojarzonych ze strumieniem.

GetRequestStream()

Źródło:
HttpWebRequest.cs
Źródło:
HttpWebRequest.cs
Źródło:
HttpWebRequest.cs

Pobiera obiekt używany do zapisywania Stream danych żądania.

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

Zwraca

A Stream do zapisywania danych żądania.

Wyjątki

Właściwość Method to GET lub HEAD.

-lub-

KeepAlivetrueis , AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, i Method is POST lub PUT.

Metoda jest wywoływana GetRequestStream() więcej niż raz.

-lub-

TransferEncoding jest ustawiona na wartość i SendChunked ma falsewartość .

Moduł sprawdzania poprawności pamięci podręcznej żądań wskazał, że odpowiedź na to żądanie może być obsługiwana z pamięci podręcznej; jednak żądania zapisujące dane nie mogą używać pamięci podręcznej. Ten wyjątek może wystąpić, jeśli używasz niestandardowego modułu sprawdzania poprawności pamięci podręcznej, który jest niepoprawnie zaimplementowany.

Abort() był wcześniej wywoływany.

-lub-

Upłynął limit czasu dla żądania.

-lub-

Wystąpił błąd podczas przetwarzania żądania.

W aplikacji .NET Compact Framework strumień żądania o zerowej długości zawartości nie został uzyskany i zamknięty poprawnie. Aby uzyskać więcej informacji na temat obsługi żądań o zerowej długości zawartości, zobacz Programowanie sieciowe w programie .NET Compact Framework.

Przykłady

Poniższy przykład kodu używa metody , GetRequestStream aby zwrócić wystąpienie strumienia.

// 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()

Uwagi

Metoda GetRequestStream zwraca strumień, który ma być używany do wysyłania danych dla elementu HttpWebRequest. Stream Po powrocie obiektu można wysyłać dane za HttpWebRequest pomocą metody .Stream.Write

Jeśli aplikacja musi ustawić wartość ContentLength właściwości, należy to zrobić przed pobraniem strumienia.

Należy wywołać metodę , Stream.Close aby zamknąć strumień i zwolnić połączenie do ponownego użycia. Nie można zamknąć strumienia, co powoduje, że aplikacja zabraknie połączeń.

Uwaga

Aplikacja nie może mieszać metod synchronicznych i asynchronicznych dla określonego żądania. W przypadku wywołania GetRequestStream metody należy użyć GetResponse metody , aby pobrać odpowiedź.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy

GetRequestStream(TransportContext)

Źródło:
HttpWebRequest.cs
Źródło:
HttpWebRequest.cs
Źródło:
HttpWebRequest.cs

Stream Pobiera obiekt używany do zapisywania danych żądań i danych wyjściowych TransportContext skojarzonych ze strumieniem.

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

Parametry

Zwraca

A Stream do zapisywania danych żądania.

Wyjątki

Metoda GetRequestStream() nie może uzyskać metody Stream.

Metoda jest wywoływana GetRequestStream() więcej niż raz.

-lub-

TransferEncoding jest ustawiona na wartość i SendChunked ma falsewartość .

Moduł sprawdzania poprawności pamięci podręcznej żądań wskazał, że odpowiedź na to żądanie może być obsługiwana z pamięci podręcznej; jednak żądania zapisujące dane nie mogą używać pamięci podręcznej. Ten wyjątek może wystąpić, jeśli używasz niestandardowego modułu sprawdzania poprawności pamięci podręcznej, który jest niepoprawnie zaimplementowany.

Właściwość Method to GET lub HEAD.

-lub-

KeepAlivetrueis , AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, i Method is POST lub PUT.

Abort() był wcześniej wywoływany.

-lub-

Upłynął limit czasu dla żądania.

-lub-

Wystąpił błąd podczas przetwarzania żądania.

Uwagi

Metoda GetRequestStream zwraca strumień, który ma być używany do wysyłania danych dla HttpWebRequest elementu i generuje TransportContext dane skojarzone ze strumieniem. Stream Po powrocie obiektu można wysyłać dane za HttpWebRequest pomocą metody .Stream.Write

Niektóre aplikacje korzystające ze zintegrowanego uwierzytelniania systemu Windows z rozszerzoną ochroną mogą wymagać wykonywania zapytań dotyczących warstwy transportu używanej przez HttpWebRequest program w celu pobrania tokenu powiązania kanału (CBT) z bazowego kanału TLS. Metoda GetRequestStream zapewnia dostęp do tych informacji dla metod HTTP, które mają treść żądania (POST i PUT żądania). Jest to konieczne tylko wtedy, gdy aplikacja implementuje własne uwierzytelnianie i potrzebuje dostępu do cbT.

Jeśli aplikacja musi ustawić wartość ContentLength właściwości, należy to zrobić przed pobraniem strumienia.

Należy wywołać metodę , Stream.Close aby zamknąć strumień i zwolnić połączenie do ponownego użycia. Nie można zamknąć strumienia, co powoduje, że aplikacja zabraknie połączeń.

Uwaga

Aplikacja nie może mieszać metod synchronicznych i asynchronicznych dla określonego żądania. W przypadku wywołania GetRequestStream metody należy użyć GetResponse metody , aby pobrać odpowiedź.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy