HttpWebRequest.GetRequestStream メソッド

定義

要求データの書き込みに使用する Stream オブジェクトを取得します。

オーバーロード

GetRequestStream()

要求データの書き込みに使用する Stream オブジェクトを取得します。

GetRequestStream(TransportContext)

要求データの書き込みに使用する Stream オブジェクトを取得し、ストリームに関連付けられている TransportContext を出力します。

GetRequestStream()

ソース:
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 です。

-又は-

KeepAlivetrueAllowWriteStreamBufferingfalseContentLength が -1、SendChunkedfalseMethod が POST または PUT です。

GetRequestStream() メソッドは複数回呼び出されます。

-又は-

TransferEncoding は値に設定され、SendChunkedfalse

要求キャッシュ検証コントロールは、この要求の応答をキャッシュから提供できることを示しました。ただし、データを書き込む要求ではキャッシュを使用しないでください。 この例外は、正しく実装されていないカスタム キャッシュ検証コントロールを使用している場合に発生する可能性があります。

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

注釈

注意

WebRequestHttpWebRequestServicePointWebClient は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。

GetRequestStream メソッドは、HttpWebRequestのデータを送信するために使用するストリームを返します。 Stream オブジェクトが返されたら、Stream.Write メソッドを使用して、HttpWebRequest を使用してデータを送信できます。

アプリケーションで ContentLength プロパティの値を設定する必要がある場合は、ストリームを取得する前にこれを行う必要があります。

ストリームを閉じ、接続を解放して再利用するには、Stream.Close メソッドを呼び出す必要があります。 ストリームを閉じないと、アプリケーションの接続が不足します。

手記

アプリケーションは、特定の要求に対して同期メソッドと非同期メソッドを混在させることができません。 GetRequestStream メソッドを呼び出す場合は、GetResponse メソッドを使用して応答を取得する必要があります。

手記

このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「.NET Frameworkでのネットワーク トレースの 」を参照してください。

こちらもご覧ください

適用対象

GetRequestStream(TransportContext)

ソース:
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 は値に設定され、SendChunkedfalse

要求キャッシュ検証コントロールは、この要求の応答をキャッシュから提供できることを示しました。ただし、データを書き込む要求ではキャッシュを使用しないでください。 この例外は、正しく実装されていないカスタム キャッシュ検証コントロールを使用している場合に発生する可能性があります。

Method プロパティは GET または HEAD です。

-又は-

KeepAlivetrueAllowWriteStreamBufferingfalseContentLength が -1、SendChunkedfalseMethod が POST または PUT です。

Abort() は以前に呼び出されました。

-又は-

要求のタイムアウト期間が期限切れになりました。

-又は-

要求の処理中にエラーが発生しました。

注釈

注意

WebRequestHttpWebRequestServicePointWebClient は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。

GetRequestStream メソッドは、HttpWebRequest のデータを送信するために使用するストリームを返し、ストリームに関連付けられている TransportContext を出力します。 Stream オブジェクトが返されたら、Stream.Write メソッドを使用して、HttpWebRequest を使用してデータを送信できます。

拡張保護で統合 Windows 認証を使用する一部のアプリケーションでは、基になる TLS チャネルからチャネル バインド トークン (CBT) を取得するために、HttpWebRequest によって使用されるトランスポート層に対してクエリを実行できる必要があります。 GetRequestStream メソッドは、要求本文 (POST および PUT 要求) を持つ HTTP メソッドに対して、この情報へのアクセスを提供します。 これは、アプリケーションが独自の認証を実装していて、CBT にアクセスする必要がある場合にのみ必要です。

アプリケーションで ContentLength プロパティの値を設定する必要がある場合は、ストリームを取得する前にこれを行う必要があります。

ストリームを閉じ、接続を解放して再利用するには、Stream.Close メソッドを呼び出す必要があります。 ストリームを閉じないと、アプリケーションの接続が不足します。

手記

アプリケーションは、特定の要求に対して同期メソッドと非同期メソッドを混在させることができません。 GetRequestStream メソッドを呼び出す場合は、GetResponse メソッドを使用して応答を取得する必要があります。

手記

このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「.NET Frameworkでのネットワーク トレースの 」を参照してください。

こちらもご覧ください

適用対象