HttpWebRequest.GetRequestStream Метод

Определение

Получает объект Stream, используемый для записи данных запроса.Gets a Stream object to use to write request data.

Перегрузки

GetRequestStream()

Получает объект Stream, используемый для записи данных запроса.Gets a Stream object to use to write request data.

GetRequestStream(TransportContext)

Получает объект Stream, используемый для записи данных запроса, и выводит объект TransportContext, связанный с потоком.Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.

GetRequestStream()

Получает объект Stream, используемый для записи данных запроса.Gets a Stream object to use to write request data.

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

Возвращаемое значение

Stream

Объект Stream, используемый для записи данных запроса.A Stream to use to write request data.

Исключения

Свойство Method имеет значение GET или HEAD.The Method property is GET or HEAD.

-или--or- KeepAlive равно true, AllowWriteStreamBuffering равно false, ContentLength равно –1, SendChunked равно false, а Method равно POST или PUT.KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, and Method is POST or PUT.

Метод GetRequestStream() вызывается несколько раз.The GetRequestStream() method is called more than once.

-или--or- Для TransferEncoding задано значение, а SendChunked равно false.TransferEncoding is set to a value and SendChunked is false.

Проверяющий элемент управления кэша запросов указывает, что ответ на этот запрос может быть предоставлен из кэша. Однако запросы, которые записывают данные, не должны использовать кэш.The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. Это исключение может возникнуть при использовании настраиваемого проверяющего элемента управления кэша, который неправильно реализован.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

Abort() был вызван ранее.Abort() was previously called.

-или--or- Истекло время ожидания для запроса.The time-out period for the request expired.

-или--or- При обработке этого запроса возникла ошибка.An error occurred while processing the request.

В приложении .NET Compact Framework поток запроса с нулевой длиной содержимого не был правильно получен и закрыт.In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. Дополнительные сведения об обработке запросов с нулевой длиной содержимого см. в разделе Сетевое программирование в .NET Compact Framework.For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework.

Примеры

В следующем примере кода метод используется GetRequestStream для возврата экземпляра потока.The following code example uses the GetRequestStream method to return a stream instance.

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

Комментарии

GetRequestStreamМетод возвращает поток, используемый для отправки данных для HttpWebRequest .The GetRequestStream method returns a stream to use to send data for the HttpWebRequest. После Stream возврата объекта можно отправить данные с HttpWebRequest помощью Stream.Write метода.After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.

Если приложению необходимо задать значение ContentLength свойства, это необходимо сделать перед извлечением потока.If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.

Необходимо вызвать метод, Stream.Close чтобы закрыть поток и освободить подключение для повторного использования.You must call the Stream.Close method to close the stream and release the connection for reuse. Сбой закрытия потока приводит к тому, что приложение закончит работу.Failure to close the stream causes your application to run out of connections.

Примечание

Приложение не может смешивать синхронные и асинхронные методы для конкретного запроса.Your application cannot mix synchronous and asynchronous methods for a particular request. При вызове GetRequestStream метода необходимо использовать GetResponse метод для получения ответа.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

См. также раздел

Применяется к

GetRequestStream(TransportContext)

Получает объект Stream, используемый для записи данных запроса, и выводит объект TransportContext, связанный с потоком.Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.

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

Параметры

context
TransportContext

Объект TransportContext для Stream.The TransportContext for the Stream.

Возвращаемое значение

Stream

Объект Stream, используемый для записи данных запроса.A Stream to use to write request data.

Исключения

Методу GetRequestStream() не удалось получить Stream.The GetRequestStream() method was unable to obtain the Stream.

Метод GetRequestStream() вызывается несколько раз.The GetRequestStream() method is called more than once.

-или--or- Для TransferEncoding задано значение, а SendChunked равно false.TransferEncoding is set to a value and SendChunked is false.

Проверяющий элемент управления кэша запросов указывает, что ответ на этот запрос может быть предоставлен из кэша. Однако запросы, которые записывают данные, не должны использовать кэш.The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. Это исключение может возникнуть при использовании настраиваемого проверяющего элемента управления кэша, который неправильно реализован.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

Свойство Method имеет значение GET или HEAD.The Method property is GET or HEAD.

-или--or- KeepAlive равно true, AllowWriteStreamBuffering равно false, ContentLength равно –1, SendChunked равно false, а Method равно POST или PUT.KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, and Method is POST or PUT.

Abort() был вызван ранее.Abort() was previously called.

-или--or- Истекло время ожидания для запроса.The time-out period for the request expired.

-или--or- При обработке этого запроса возникла ошибка.An error occurred while processing the request.

Комментарии

GetRequestStreamМетод возвращает поток, используемый для отправки данных для, HttpWebRequest и выводит TransportContext связанный с ним поток.The GetRequestStream method returns a stream to use to send data for the HttpWebRequest and outputs the TransportContext associated with the stream. После Stream возврата объекта можно отправить данные с HttpWebRequest помощью Stream.Write метода.After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.

Некоторые приложения, использующие встроенную проверку подлинности Windows с расширенной защитой, могут запрашивать транспортный уровень, используемый HttpWebRequest для получения маркера привязки канала (CBT) из базового TLS-канала.Some applications that use integrated Windows authentication with extended protection may need to be able to query the transport layer used by HttpWebRequest in order to retrieve the channel binding token (CBT) from the underlying TLS channel. GetRequestStreamМетод предоставляет доступ к этим сведениям для методов HTTP, которые имеют текст запроса ( POST и PUT запросы).The GetRequestStream method provides access to this information for HTTP methods which have a request body (POST and PUT requests). Это необходимо только в том случае, если приложение реализует собственную проверку подлинности и требует доступа к CBT.This is only needed if the application is implementing its own authentication and needs access to the CBT.

Если приложению необходимо задать значение ContentLength свойства, это необходимо сделать перед извлечением потока.If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.

Необходимо вызвать метод, Stream.Close чтобы закрыть поток и освободить подключение для повторного использования.You must call the Stream.Close method to close the stream and release the connection for reuse. Сбой закрытия потока приводит к тому, что приложение закончит работу.Failure to close the stream causes your application to run out of connections.

Примечание

Приложение не может смешивать синхронные и асинхронные методы для конкретного запроса.Your application cannot mix synchronous and asynchronous methods for a particular request. При вызове GetRequestStream метода необходимо использовать GetResponse метод для получения ответа.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

См. также раздел

Применяется к