次の方法で共有


FtpWebRequest.EndGetResponse(IAsyncResult) メソッド

定義

BeginGetResponse(AsyncCallback, Object) で開始された保留中の非同期操作を終了します。

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

操作の開始時に返された IAsyncResult

戻り値

FtpWebResponse インスタンスを格納している WebResponse 参照。 このオブジェクトは、要求に対する FTP サーバーの応答を格納しています。

例外

asyncResultnullです。

BeginGetResponse(AsyncCallback, Object) の呼び出しで、asyncResult が取得されませんでした。

このメソッドは、asyncResult で識別される操作に対して既に呼び出されています。

HTTP プロキシの使用中にエラーが発生しました。

次のコード例では、応答を取得するための非同期操作を終了する方法を示します。 このコード例は、クラスの概要に関して提供されるより大きな例の FtpWebRequest 一部です。

// The EndGetResponseCallback method  
// completes a call to BeginGetResponse.
static void EndGetResponseCallback( IAsyncResult^ ar )
{
   FtpState^ state = dynamic_cast<FtpState^>(ar->AsyncState);
   FtpWebResponse ^ response = nullptr;
   try
   {
      response = dynamic_cast<FtpWebResponse^>(state->Request->EndGetResponse( ar ));
      response->Close();
      state->StatusDescription = response->StatusDescription;

      // Signal the main application thread that 
      // the operation is complete.
      state->OperationComplete->Set();
   }
   // Return exceptions to the main application thread.
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Error getting response." );
      state->OperationException = e;
      state->OperationComplete->Set();
   }
}
// The EndGetResponseCallback method
// completes a call to BeginGetResponse.
private static void EndGetResponseCallback(IAsyncResult ar)
{
    FtpState state = (FtpState) ar.AsyncState;
    FtpWebResponse response = null;
    try
    {
        response = (FtpWebResponse) state.Request.EndGetResponse(ar);
        response.Close();
        state.StatusDescription = response.StatusDescription;
        // Signal the main application thread that
        // the operation is complete.
        state.OperationComplete.Set();
    }
    // Return exceptions to the main application thread.
    catch (Exception e)
    {
        Console.WriteLine ("Error getting response.");
        state.OperationException = e;
        state.OperationComplete.Set();
    }
}

注釈

メソッドが呼び出された時点で操作が EndGetResponse 完了していない場合は、 EndGetResponse 操作が完了するまでブロックされます。 ブロックされないようにするには、 を呼び出すEndGetResponse前に プロパティをIsCompleted確認します。

「例外」 EndGetResponse に記されている例外に加えて、サーバーとの通信中にスローされた例外を再スローします。

Note

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

注意 (呼び出し元)

この方法では、ネットワーク トラフィックが生成されます。

適用対象

こちらもご覧ください