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
Параметры
- context
- TransportContext
StreamДля TransportContext .
Возвращаемое значение
Используется 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.
См. также раздел
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- Интегрированная проверка подлинности Windows с расширенной защитой