HttpWebRequest.GetRequestStream Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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-
KeepAlivetrue
is , 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 false
wartość .
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
- context
- TransportContext
Element TransportContext dla .Stream
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 false
wartość .
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-
KeepAlivetrue
is , 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ż
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- Zintegrowane uwierzytelnianie systemu Windows z ochroną rozszerzoną
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla