Поделиться через


HttpWebRequest.GetRequestStream Метод

Определение

Возвращает объект, используемый Stream для записи данных запроса.

Перегрузки

Имя Описание
GetRequestStream()

Возвращает объект, используемый Stream для записи данных запроса.

GetRequestStream(TransportContext)

Возвращает объект, используемый Stream для записи данных запроса и выходных данных TransportContext , связанных с потоком.

GetRequestStream()

Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs

Возвращает объект, используемый Stream для записи данных запроса.

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 для записи данных запроса.

Исключения

Свойство Method GET или HEAD.

-или-

KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, is , and Method is POST или PUT.

Метод GetRequestStream() вызывается несколько раз.

-или-

TransferEncoding имеет значение и SendChunked имеет значение false.

Проверяющий элемент кэша запросов указывает, что ответ на этот запрос можно обслуживать из кэша; однако запросы, которые записывают данные, не должны использовать кэш. Это исключение может возникать, если вы используете настраиваемый проверяющий элемент кэша, который неправильно реализован.

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

-или-

Срок ожидания запроса истек.

-или-

Произошла ошибка при обработке запроса.

В приложении .NET Compact Framework поток запросов с нулевой длиной содержимого не был получен и закрыт правильно. Дополнительные сведения об обработке запросов нулевой длины содержимого см. в разделе "Сетевое программирование" в .NET Compact Framework.

Примеры

В следующем примере кода метод используется GetRequestStream для возврата экземпляра потока.

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

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи устарели, и WebClient вы не должны использовать их для новой разработки. Вместо этого используйте HttpClient.

Метод GetRequestStream возвращает поток, используемый для отправки данных.HttpWebRequest Stream После возврата объекта можно отправить данные с HttpWebRequest помощью Stream.Write метода.

Если приложению необходимо задать значение ContentLength свойства, перед получением потока необходимо сделать это.

Необходимо вызвать Stream.Close метод, чтобы закрыть поток и освободить подключение для повторного использования. Сбой закрытия потока приводит к тому, что приложение не упустит подключения.

Заметка

Приложение не может смешивать синхронные и асинхронные методы для конкретного запроса. При вызове GetRequestStream метода необходимо использовать GetResponse метод для получения ответа.

Заметка

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.

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

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

GetRequestStream(TransportContext)

Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs
Исходный код:
HttpWebRequest.cs

Возвращает объект, используемый Stream для записи данных запроса и выходных данных TransportContext , связанных с потоком.

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

Параметры

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

Используется Stream для записи данных запроса.

Исключения

Метод GetRequestStream() не удалось получить Stream.

Метод GetRequestStream() вызывается несколько раз.

-или-

TransferEncoding имеет значение и SendChunked имеет значение false.

Проверяющий элемент кэша запросов указывает, что ответ на этот запрос можно обслуживать из кэша; однако запросы, которые записывают данные, не должны использовать кэш. Это исключение может возникать, если вы используете настраиваемый проверяющий элемент кэша, который неправильно реализован.

Свойство Method GET или HEAD.

-или-

KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, is , and Method is POST или PUT.

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

-или-

Срок ожидания запроса истек.

-или-

Произошла ошибка при обработке запроса.

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи устарели, и WebClient вы не должны использовать их для новой разработки. Вместо этого используйте HttpClient.

Метод GetRequestStream возвращает поток, используемый для отправки данных для HttpWebRequest передачи данных и выходных данных TransportContext , связанных с потоком. Stream После возврата объекта можно отправить данные с HttpWebRequest помощью Stream.Write метода.

Некоторым приложениям, использующим встроенную проверку подлинности Windows с расширенной защитой, может потребоваться запросить уровень транспорта, используемый HttpWebRequest для получения маркера привязки канала (CBT) из базового канала TLS. Метод GetRequestStream предоставляет доступ к этой информации для методов HTTP, имеющих текст запроса (POST и PUT запросы). Это необходимо только в том случае, если приложение реализует собственную проверку подлинности и нуждается в доступе к CBT.

Если приложению необходимо задать значение ContentLength свойства, перед получением потока необходимо сделать это.

Необходимо вызвать Stream.Close метод, чтобы закрыть поток и освободить подключение для повторного использования. Сбой закрытия потока приводит к тому, что приложение не упустит подключения.

Заметка

Приложение не может смешивать синхронные и асинхронные методы для конкретного запроса. При вызове GetRequestStream метода необходимо использовать GetResponse метод для получения ответа.

Заметка

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.

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

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