HttpWebRequest.EndGetResponse(IAsyncResult) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
インターネット リソースへの非同期要求を終了します。
public:
override System::Net::WebResponse ^ EndGetResponse(IAsyncResult ^ asyncResult);
public override System.Net.WebResponse EndGetResponse (IAsyncResult asyncResult);
override this.EndGetResponse : IAsyncResult -> System.Net.WebResponse
Public Overrides Function EndGetResponse (asyncResult As IAsyncResult) As WebResponse
パラメーター
- asyncResult
- IAsyncResult
応答の保留中の要求。
戻り値
インターネット リソースからの応答を含む WebResponse。
例外
asyncResult
は null
です。
asyncResult
は、BeginGetResponse(AsyncCallback, Object)の呼び出しから現在のインスタンスから返されませんでした。
例
次のコード例では、EndGetResponse メソッドを使用して、インターネット リソースの非同期要求を終了します。
static void RespCallback( IAsyncResult^ asynchronousResult )
{
try
{
// State of request is asynchronous.
RequestState^ myRequestState = dynamic_cast<RequestState^>(asynchronousResult->AsyncState);
HttpWebRequest^ myHttpWebRequest2 = myRequestState->request;
myRequestState->response = dynamic_cast<HttpWebResponse^>(myHttpWebRequest2->EndGetResponse( asynchronousResult ));
// Read the response into a Stream object.
Stream^ responseStream = myRequestState->response->GetResponseStream();
myRequestState->streamResponse = responseStream;
// Begin the Reading of the contents of the HTML page and print it to the console.
IAsyncResult^ asynchronousInputRead = responseStream->BeginRead( myRequestState->BufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState );
}
catch ( WebException^ e )
{
Console::WriteLine( "\nException raised!" );
Console::WriteLine( "\nMessage: {0}", e->Message );
Console::WriteLine( "\nStatus: {0}", e->Status );
}
}
static void ReadCallBack( IAsyncResult^ asyncResult )
{
try
{
RequestState^ myRequestState = dynamic_cast<RequestState^>(asyncResult->AsyncState);
Stream^ responseStream = myRequestState->streamResponse;
int read = responseStream->EndRead( asyncResult );
// Read the HTML page and then print it to the console.
if ( read > 0 )
{
myRequestState->requestData->Append( Encoding::ASCII->GetString( myRequestState->BufferRead, 0, read ) );
IAsyncResult^ asynchronousResult = responseStream->BeginRead( myRequestState->BufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState );
}
else
{
Console::WriteLine( "\nThe contents of the Html page are : " );
if ( myRequestState->requestData->Length > 1 )
{
String^ stringContent;
stringContent = myRequestState->requestData->ToString();
Console::WriteLine( stringContent );
}
Console::WriteLine( "Press any key to continue.........." );
Console::ReadLine();
responseStream->Close();
allDone->Set();
}
}
catch ( WebException^ e )
{
Console::WriteLine( "\nException raised!" );
Console::WriteLine( "\nMessage: {0}", e->Message );
Console::WriteLine( "\nStatus: {0}", e->Status );
}
}
};
int main()
{
try
{
// Create a HttpWebrequest object to the desired URL.
HttpWebRequest^ myHttpWebRequest1 = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com" ));
// Create an instance of the RequestState and assign the previous myHttpWebRequest1
// object to its request field.
RequestState^ myRequestState = gcnew RequestState;
myRequestState->request = myHttpWebRequest1;
// Start the asynchronous request.
IAsyncResult^ result = dynamic_cast<IAsyncResult^>(myHttpWebRequest1->BeginGetResponse( gcnew AsyncCallback( HttpWebRequest_BeginGetResponse::RespCallback ), myRequestState ));
HttpWebRequest_BeginGetResponse::allDone->WaitOne();
// Release the HttpWebResponse resource.
myRequestState->response->Close();
}
catch ( WebException^ e )
{
Console::WriteLine( "\nException raised!" );
Console::WriteLine( "\nMessage: {0}", e->Message );
Console::WriteLine( "\nStatus: {0}", e->Status );
Console::WriteLine( "Press any key to continue.........." );
}
catch ( Exception^ e )
{
Console::WriteLine( "\nException raised!" );
Console::WriteLine( "Source : {0} ", e->Source );
Console::WriteLine( "Message : {0} ", e->Message );
Console::WriteLine( "Press any key to continue.........." );
Console::Read();
}
}
try
{
// Create a HttpWebrequest object to the desired URL.
HttpWebRequest myHttpWebRequest1= (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
// Create an instance of the RequestState and assign the previous myHttpWebRequest1
// object to it's request field.
RequestState myRequestState = new RequestState();
myRequestState.request = myHttpWebRequest1;
// Start the asynchronous request.
IAsyncResult result=
(IAsyncResult) myHttpWebRequest1.BeginGetResponse(new AsyncCallback(RespCallback),myRequestState);
allDone.WaitOne();
// Release the HttpWebResponse resource.
myRequestState.response.Close();
}
catch(WebException e)
{
Console.WriteLine("\nException raised!");
Console.WriteLine("\nMessage:{0}",e.Message);
Console.WriteLine("\nStatus:{0}",e.Status);
Console.WriteLine("Press any key to continue..........");
}
catch(Exception e)
{
Console.WriteLine("\nException raised!");
Console.WriteLine("Source :{0} " , e.Source);
Console.WriteLine("Message :{0} " , e.Message);
Console.WriteLine("Press any key to continue..........");
Console.Read();
}
}
private static void RespCallback(IAsyncResult asynchronousResult)
{
try
{
// State of request is asynchronous.
RequestState myRequestState=(RequestState) asynchronousResult.AsyncState;
HttpWebRequest myHttpWebRequest2=myRequestState.request;
myRequestState.response = (HttpWebResponse) myHttpWebRequest2.EndGetResponse(asynchronousResult);
// Read the response into a Stream object.
Stream responseStream = myRequestState.response.GetResponseStream();
myRequestState.streamResponse=responseStream;
// Begin the Reading of the contents of the HTML page and print it to the console.
IAsyncResult asynchronousInputRead = responseStream.BeginRead(myRequestState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), myRequestState);
}
catch(WebException e)
{
Console.WriteLine("\nException raised!");
Console.WriteLine("\nMessage:{0}",e.Message);
Console.WriteLine("\nStatus:{0}",e.Status);
}
}
private static void ReadCallBack(IAsyncResult asyncResult)
{
try
{
RequestState myRequestState = (RequestState)asyncResult.AsyncState;
Stream responseStream = myRequestState.streamResponse;
int read = responseStream.EndRead( asyncResult );
// Read the HTML page and then print it to the console.
if (read > 0)
{
myRequestState.requestData.Append(Encoding.ASCII.GetString(myRequestState.BufferRead, 0, read));
IAsyncResult asynchronousResult = responseStream.BeginRead( myRequestState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), myRequestState);
}
else
{
Console.WriteLine("\nThe contents of the Html page are : ");
if(myRequestState.requestData.Length>1)
{
string stringContent;
stringContent = myRequestState.requestData.ToString();
Console.WriteLine(stringContent);
}
Console.WriteLine("Press any key to continue..........");
Console.ReadLine();
responseStream.Close();
allDone.Set();
}
}
catch(WebException e)
{
Console.WriteLine("\nException raised!");
Console.WriteLine("\nMessage:{0}",e.Message);
Console.WriteLine("\nStatus:{0}",e.Status);
}
}
Try
' Create a new HttpWebrequest object to the desired URL.
Dim myHttpWebRequest1 As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com"), HttpWebRequest)
' Create an instance of the RequestState and assign the previous myHttpWebRequest1
' object to it's request field.
Dim myRequestState As New RequestState()
myRequestState.request = myHttpWebRequest1
' Start the Asynchronous request.
Dim result As IAsyncResult = CType(myHttpWebRequest1.BeginGetResponse(AddressOf RespCallback, myRequestState), IAsyncResult)
allDone.WaitOne()
' Release the HttpWebResponse resource.
myRequestState.response.Close()
Catch e As WebException
Console.WriteLine(ControlChars.Cr + "Exception raised!")
Console.WriteLine(ControlChars.Cr + "Message:{0}", e.Message)
Console.WriteLine(ControlChars.Cr + "Status:{0}", e.Status)
Console.WriteLine("Press any key to continue..........")
Catch e As Exception
Console.WriteLine(ControlChars.Cr + "Exception raised!")
Console.WriteLine("Source :{0} ", e.Source)
Console.WriteLine("Message : {0}", e.Message)
Console.WriteLine("Press any key to continue..........")
Console.Read()
End Try
End Sub
Private Shared Sub RespCallback(asynchronousResult As IAsyncResult)
Try
' State of request is asynchronous.
Dim myRequestState As RequestState = CType(asynchronousResult.AsyncState, RequestState)
Dim myHttpWebRequest2 As HttpWebRequest = myRequestState.request
myRequestState.response = CType(myHttpWebRequest2.EndGetResponse(asynchronousResult), HttpWebResponse)
' Read the response into a Stream object.
Dim responseStream As Stream = myRequestState.response.GetResponseStream()
myRequestState.streamResponse = responseStream
' Begin the Reading of the contents of the HTML page and print it to the console.
Dim asynchronousInputRead As IAsyncResult = responseStream.BeginRead(myRequestState.BufferRead, 0, BUFFER_SIZE, AddressOf ReadCallBack, myRequestState)
Catch e As WebException
Console.WriteLine(ControlChars.Cr + "Exception raised!")
Console.WriteLine(ControlChars.Cr + "Message:{0}", e.Message)
Console.WriteLine(ControlChars.Cr + "Status:{0}", e.Status)
End Try
End Sub
Private Shared Sub ReadCallBack(asyncResult As IAsyncResult)
Try
Dim myRequestState As RequestState = CType(asyncResult.AsyncState, RequestState)
Dim responseStream As Stream = myRequestState.streamResponse
Dim read As Integer = responseStream.EndRead(asyncResult)
' Read the HTML page and then print it to the console.
If read > 0 Then
myRequestState.requestData.Append(Encoding.ASCII.GetString(myRequestState.BufferRead, 0, read))
Dim asynchronousResult As IAsyncResult = responseStream.BeginRead(myRequestState.BufferRead, 0, BUFFER_SIZE, AddressOf ReadCallBack, myRequestState)
Else
Console.WriteLine(ControlChars.Cr + "The contents of the Html page are : ")
If myRequestState.requestData.Length > 1 Then
Dim stringContent As String
stringContent = myRequestState.requestData.ToString()
Console.WriteLine(stringContent)
End If
Console.WriteLine("Press any key to continue..........")
Console.ReadLine()
responseStream.Close()
allDone.Set()
End If
Catch e As WebException
Console.WriteLine(ControlChars.Cr + "Exception raised!")
Console.WriteLine(ControlChars.Cr + "Message:{0}", e.Message)
Console.WriteLine(ControlChars.Cr + "Status:{0}", e.Status)
End Try
End Sub
注釈
注意
WebRequest
、HttpWebRequest
、ServicePoint
、WebClient
は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。
EndGetResponse メソッドは、BeginGetResponse メソッドを呼び出すことによって開始されたインターネット リソースの非同期要求を完了します。
注意
ストリームを閉じて接続を解放するには、Close メソッドを呼び出す必要があります。 これを行わないと、アプリケーションが接続を使い果たしてしまう可能性があります。
手記
このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「.NET Frameworkでのネットワーク トレースの
適用対象
.NET