FtpWebRequest.EndGetResponse(IAsyncResult) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kończy oczekującą operację asynchroniczną rozpoczętą z 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
Parametry
- asyncResult
- IAsyncResult
Element IAsyncResult , który został zwrócony po rozpoczęciu operacji.
Zwraca
Odwołanie WebResponse zawierające FtpWebResponse wystąpienie. Ten obiekt zawiera odpowiedź serwera FTP na żądanie.
Wyjątki
asyncResult
to null
.
asyncResult
nie został uzyskany przez wywołanie metody BeginGetResponse(AsyncCallback, Object).
Ta metoda została już wywołana dla operacji zidentyfikowanej przez asyncResult
.
Wystąpił błąd przy użyciu serwera proxy HTTP.
Przykłady
Poniższy przykład kodu przedstawia zakończenie operacji asynchronicznej w celu uzyskania odpowiedzi. Ten przykład kodu jest częścią większego przykładu udostępnionego FtpWebRequest do omówienia klasy.
// 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();
}
}
Uwagi
Jeśli operacja nie została ukończona w momencie EndGetResponse wywołania metody , EndGetResponse blokuje działanie do momentu zakończenia operacji. Aby zapobiec blokowaniu, przed wywołaniem metody EndGetResponsesprawdź IsCompleted właściwość .
Oprócz wyjątków odnotowanych w sekcji "Wyjątki" EndGetResponse ponownie dodaje wyjątki, które zostały zgłoszone podczas komunikacji z serwerem.
Uwaga
Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .NET Framework.
Uwagi dotyczące wywoływania
Ta metoda generuje ruch sieciowy.