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, который был возвращен в начале операции.
Ссылка WebResponse, которая содержит экземпляр FtpWebResponse. Этот объект содержит ответ FTP-сервера на запрос.
asyncResult
имеет значение null
.
Параметр asyncResult
не был получен путем вызова BeginGetResponse(AsyncCallback, Object).
Этот метод уже был вызван для операции, указанной в параметре 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 блокируется до завершения операции. Чтобы предотвратить блокировку IsCompleted , проверьте свойство перед вызовом EndGetResponse.
Помимо исключений, указанных в разделе "Исключения" EndGetResponse , повторно создает исключения, которые были созданы при взаимодействии с сервером.
Примечание
Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в .NET Framework.
Этот метод создает сетевой трафик.
Применяется к
Продукт | Версии |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |