HttpWebRequest.BeginGetRequestStream メソッド
アセンブリ: System (system.dll 内)

Public Overrides Function BeginGetRequestStream ( _ callback As AsyncCallback, _ state As Object _ ) As IAsyncResult
Dim instance As HttpWebRequest Dim callback As AsyncCallback Dim state As Object Dim returnValue As IAsyncResult returnValue = instance.BeginGetRequestStream(callback, state)
public: virtual IAsyncResult^ BeginGetRequestStream ( AsyncCallback^ callback, Object^ state ) override
public override function BeginGetRequestStream ( callback : AsyncCallback, state : Object ) : IAsyncResult
戻り値
非同期の要求を参照する IAsyncResult。

例外の種類 | 条件 |
---|---|
ProtocolViolationException | Method プロパティが GET または HEAD です。 または KeepAlive は true で、AllowWriteStreamBuffering は false で、ContentLength は -1 で、SendChunked は false で、Method は POST または PUT です。 |
InvalidOperationException | ストリームが、BeginGetRequestStream の前回の呼び出しで使用されています。 または TransferEncoding に値が設定され、SendChunked が false です。 または |
NotSupportedException | 要求のキャッシュ検証コントロールで、この要求の応答がキャッシュから取得できることが示されましたが、データの書き込みを行う要求でキャッシュは使用できません。この例外は、キャッシュ検証コントロールの不適切なカスタム実装を使用した場合に発生することがあります。 |
WebException | |
ObjectDisposedException | .NET Compact Framework アプリケーションで、コンテンツ長が 0 の要求ストリームは取得されず、適切に閉じられました。コンテンツ長が 0 の要求の処理の詳細については、「.NET Compact Framework のネットワーク プログラミング」を参照してください。 |

BeginGetRequestStream メソッドは、HttpWebRequest のデータを送信するために使用するストリームへの非同期要求を開始します。非同期コールバック メソッドは、EndGetRequestStream メソッドを使用して実際のストリームを返します。
スレッド プールの詳細については、「マネージ スレッド プール」を参照してください。
![]() |
---|
アプリケーション内で特定の要求について同期メソッドと非同期メソッドを組み合わせることはできません。BeginGetRequestStream メソッドを呼び出す場合は、BeginGetResponse メソッドを使用して応答を取得する必要があります。 |

BeginGetRequestStream メソッドを使用して、ストリーム インスタンスに対する非同期要求を行うコード例を次に示します。
Imports System Imports System.Net Imports System.IO Imports System.Text Imports System.Threading Imports Microsoft.VisualBasic Class HttpWebRequestBeginGetRequest Public Shared allDone As New ManualResetEvent(False) Shared Sub Main() ' Create a new HttpWebRequest object. ' Dim request As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com/example.aspx"), _ ' HttpWebRequest) Dim request As HttpWebRequest = CType(WebRequest.Create("http://localhost/test/PostAccepter.aspx"), _ HttpWebRequest) ' Set the ContentType property. request.ContentType = "application/x-www-form-urlencoded" ' Set the Method property to 'POST' to post data to the URI. request.Method = "POST" ' Start the asynchronous operation. Dim result As IAsyncResult = _ CType(request.BeginGetRequestStream(AddressOf ReadCallback, request), IAsyncResult) ' Keep the main thread from continuing while the asynchronous ' operation completes. A real world application ' could do something useful such as updating its user interface. allDone.WaitOne() ' Get the response. Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse) Dim streamResponse As Stream = response.GetResponseStream() Dim streamRead As New StreamReader(streamResponse) Dim responseString As String = streamRead.ReadToEnd() Console.WriteLine(responseString) ' Close Stream object. streamResponse.Close() streamRead.Close() ' Release the HttpWebResponse. response.Close() End Sub ' Main Private Shared Sub ReadCallback(ByVal asynchronousResult As IAsyncResult) Dim request As HttpWebRequest = CType(asynchronousResult.AsyncState, HttpWebRequest) ' End the operation. Dim postStream As Stream = request.EndGetRequestStream(asynchronousResult) Console.WriteLine("Please enter the input data to be posted:") Dim postData As [String] = Console.ReadLine() ' Convert the string into byte array. Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData) ' Write to the stream. postStream.Write(byteArray, 0, postData.Length) postStream.Close() allDone.Set() End Sub ' ReadCallback End Class ' HttpWebRequest_BeginGetRequest
using System; using System.Net; using System.IO; using System.Text; using System.Threading; class HttpWebRequestBeginGetRequest { public static ManualResetEvent allDone = new ManualResetEvent(false); public static void Main() { // Create a new HttpWebRequest object. HttpWebRequest request=(HttpWebRequest) WebRequest.Create("http://www.contoso.com/example.aspx"); // Set the ContentType property. request.ContentType="application/x-www-form-urlencoded"; // Set the Method property to 'POST' to post data to the URI. request.Method = "POST"; // Start the asynchronous operation. request.BeginGetRequestStream(new AsyncCallback(ReadCallback), request); // Keep the main thread from continuing while the asynchronous // operation completes. A real world application // could do something useful such as updating its user interface. allDone.WaitOne(); // Get the response. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse); string responseString = streamRead.ReadToEnd(); Console.WriteLine(responseString); // Close the stream object. streamResponse.Close(); streamRead.Close(); // Release the HttpWebResponse. response.Close(); } private static void ReadCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; // End the operation. Stream postStream = request.EndGetRequestStream(asynchronousResult); Console.WriteLine("Please enter the input data to be posted:"); string postData = Console.ReadLine (); // Convert the string into a byte array. byte[] byteArray = Encoding.UTF8.GetBytes(postData); // Write to the request stream. postStream.Write(byteArray, 0, postData.Length); postStream.Close (); allDone.Set(); } }
#using <System.dll> using namespace System; using namespace System::Net; using namespace System::IO; using namespace System::Text; using namespace System::Threading; ref class HttpWebRequestBeginGetRequest { public: static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); static void Main() { // Create a new HttpWebRequest object. HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/example.aspx" )); // Set the ContentType property. request->ContentType = "application/x-www-form-urlencoded"; // Set the Method property to 'POST' to post data to the Uri. request->Method = "POST"; // Start the asynchronous operation. AsyncCallback^ del = gcnew AsyncCallback( ReadCallback ); request->BeginGetRequestStream( del, request ); // Keep the main thread from continuing while the asynchronous // operation completes. A real world application // could do something useful such as updating its user interface. allDone->WaitOne(); HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse()); Stream^ streamResponse = response->GetResponseStream(); StreamReader^ streamRead = gcnew StreamReader( streamResponse ); String^ responseString = streamRead->ReadToEnd(); Console::WriteLine( responseString ); // Close Stream object. streamResponse->Close(); streamRead->Close(); // Release the HttpWebResponse. response->Close(); } private: static void ReadCallback( IAsyncResult^ asynchronousResult ) { HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(asynchronousResult->AsyncState); // End the operation. Stream^ postStream = request->EndGetRequestStream( asynchronousResult ); Console::WriteLine( "Please enter the input data to be posted:" ); String^ postData = Console::ReadLine(); // Convert the string into Byte array. array<Byte>^ByteArray = Encoding::UTF8->GetBytes( postData ); // Write to the request stream. postStream->Write( ByteArray, 0, postData->Length ); postStream->Close(); allDone->Set(); } }; void main() { HttpWebRequestBeginGetRequest::Main(); }
import System.*; import System.Net.*; import System.IO.*; import System.Text.*; import System.Threading.*; class HttpWebRequestBeginGetRequest { public static ManualResetEvent allDone = new ManualResetEvent(false); public static void main(String[] args) { // Create a new HttpWebRequest object. HttpWebRequest request = (HttpWebRequest)(WebRequest.Create( "http://www.contoso.com/example.aspx")); // Set the ContentType property. request.set_ContentType("application/x-www-form-urlencoded"); // Set the Method property to 'POST' to post data to the URI. request.set_Method("POST"); // Start the asynchronous operation. request.BeginGetRequestStream(new AsyncCallback(ReadCallback), request); // Keep the main thread from continuing while the asynchronous // operation completes. A real world application // could do something useful such as updating its user interface. allDone.WaitOne(); // Get the response. HttpWebResponse response = (HttpWebResponse)(request.GetResponse()); Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse); String responseString = streamRead.ReadToEnd(); Console.WriteLine(responseString); // Close the stream object. streamResponse.Close(); streamRead.Close(); // Release the HttpWebResponse. response.Close(); } //main private static void ReadCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest) (asynchronousResult.get_AsyncState()); // End the operation. Stream postStream = request.EndGetRequestStream(asynchronousResult); Console.WriteLine("Please enter the input data to be posted:"); String postData = Console.ReadLine(); // Convert the string into a byte array. ubyte byteArray[] = Encoding.get_UTF8().GetBytes(postData); // Write to the request stream. postStream.Write(byteArray, 0, postData.get_Length()); postStream.Close(); allDone.Set(); } //ReadCallback } //HttpWebRequestBeginGetRequest

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- HttpWebRequest.BeginGetRequestStream メソッドのページへのリンク