FtpWebRequest.EndGetResponse(IAsyncResult) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Termina un'operazione asincrona in sospeso avviata con il metodo 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
Parametri
- asyncResult
- IAsyncResult
Oggetto IAsyncResult restituito all'avvio dell'operazione.
Restituisce
Riferimento WebResponse in cui è contenuta un'istanza di FtpWebResponse. Questo oggetto contiene la risposta del server FTP alla richiesta.
Eccezioni
asyncResult
è null
.
asyncResult
non è stato ottenuto chiamando il metodo BeginGetResponse(AsyncCallback, Object).
Questo metodo è già stato chiamato per l'operazione identificata da asyncResult
.
Errore durante l'utilizzo di un proxy HTTP.
Esempio
Nell'esempio di codice seguente viene illustrato come terminare un'operazione asincrona per ottenere una risposta. Questo esempio di codice fa parte di un esempio più ampio fornito per la panoramica della FtpWebRequest classe.
// 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();
}
}
Commenti
Se l'operazione non è stata completata al momento della chiamata al EndGetResponse metodo, EndGetResponse blocca fino al completamento dell'operazione. Per evitare il blocco, controllare la IsCompleted proprietà prima di chiamare EndGetResponse.
Oltre alle eccezioni indicate in "Eccezioni", EndGetResponse vengono rigenerate le eccezioni generate durante la comunicazione con il server.
Nota
Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Note per i chiamanti
Questo metodo genera il traffico di rete.