FtpWebRequest.BeginGetResponse(AsyncCallback, Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Começa a enviar um pedido e a receber uma resposta de um servidor FTP de forma assíncrona.
public:
override IAsyncResult ^ BeginGetResponse(AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginGetResponse(AsyncCallback? callback, object? state);
public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state);
override this.BeginGetResponse : AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginGetResponse (callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- callback
- AsyncCallback
Um AsyncCallback delegado que faz referência ao método a invocar quando a operação estiver completa.
- state
- Object
Um objeto definido pelo utilizador que contém informação sobre a operação. Este objeto é passado para o callback delegado quando a operação termina.
Devoluções
Uma IAsyncResult instância que indica o estado da operação.
Exceções
GetResponse() ou BeginGetResponse(AsyncCallback, Object) já foi chamado para este caso.
Exemplos
O exemplo de código seguinte demonstra como terminar uma operação assíncrona para obter o fluxo de um pedido e depois iniciar um pedido para obter a resposta. Este exemplo de código faz parte de um exemplo maior fornecido para a FtpWebRequest visão geral da classe.
private static void EndGetStreamCallback(IAsyncResult ar)
{
FtpState state = (FtpState) ar.AsyncState;
Stream requestStream = null;
// End the asynchronous call to get the request stream.
try
{
requestStream = state.Request.EndGetRequestStream(ar);
// Copy the file contents to the request stream.
const int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int count = 0;
int readBytes = 0;
FileStream stream = File.OpenRead(state.FileName);
do
{
readBytes = stream.Read(buffer, 0, bufferLength);
requestStream.Write(buffer, 0, readBytes);
count += readBytes;
}
while (readBytes != 0);
Console.WriteLine ("Writing {0} bytes to the stream.", count);
// IMPORTANT: Close the request stream before sending the request.
requestStream.Close();
// Asynchronously get the response to the upload request.
state.Request.BeginGetResponse(
new AsyncCallback (EndGetResponseCallback),
state
);
}
// Return exceptions to the main application thread.
catch (Exception e)
{
Console.WriteLine("Could not get the request stream.");
state.OperationException = e;
state.OperationComplete.Set();
return;
}
}
Observações
Deve completar a operação assíncrona chamando o EndGetResponse método. Tipicamente, EndGetResponse é chamado pelo método referenciado por callback. Para determinar o estado da operação, verifique as propriedades no IAsyncResult objeto devolvido pelo BeginGetResponse método.
Se a Proxy propriedade estiver definida, seja diretamente ou num ficheiro de configuração, as comunicações com o servidor FTP são feitas através do proxy especificado.
BeginGetResponse não bloqueia enquanto espera pela resposta do servidor. Para bloquear, chame o GetResponse método em vez de BeginGetResponse.
Para mais informações sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos.
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Rastreamento de Rede no .NET Framework.
Note
Se a WebException for lançado, use as Response propriedades e Status da exceção para determinar a resposta do servidor.
Notas para Chamadores
Este método gera tráfego de rede.