FtpWebRequest.BeginGetResponse(AsyncCallback, Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Begint met het verzenden van een aanvraag en het ontvangen van een reactie van een FTP-server asynchroon.
public:
override IAsyncResult ^ BeginGetResponse(AsyncCallback ^ callback, System::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
Parameters
- callback
- AsyncCallback
Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de bewerking is voltooid.
- state
- Object
Een door de gebruiker gedefinieerd object dat informatie over de bewerking bevat. Dit object wordt doorgegeven aan de callback gemachtigde wanneer de bewerking is voltooid.
Retouren
Een IAsyncResult exemplaar dat de status van de bewerking aangeeft.
Uitzonderingen
GetResponse() of BeginGetResponse(AsyncCallback, Object) is al aangeroepen voor dit exemplaar.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een asynchrone bewerking beëindigt om de stroom van een aanvraag op te halen en vervolgens een aanvraag te starten om het antwoord op te halen. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor het FtpWebRequest klasseoverzicht.
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;
}
}
Opmerkingen
U moet de asynchrone bewerking voltooien door de EndGetResponse methode aan te roepen.
EndGetResponse Wordt meestal aangeroepen door de methode waarnaar wordt verwezen door callback. Als u de status van de bewerking wilt bepalen, controleert u de eigenschappen in het IAsyncResult object dat door de BeginGetResponse methode wordt geretourneerd.
Als de Proxy eigenschap is ingesteld, rechtstreeks of in een configuratiebestand, wordt communicatie met de FTP-server uitgevoerd via de opgegeven proxy.
BeginGetResponse blokkeert niet tijdens het wachten op het antwoord van de server. Als u wilt blokkeren, roept u de GetResponse methode aan in plaats van BeginGetResponse.
Zie Synchrone methoden asynchroon aanroepen voor meer informatie over het gebruik van het asynchrone programmeermodel.
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.
Note
Als er een WebException optreedt, gebruikt u de Response en Status eigenschappen van de uitzondering om het antwoord van de server te bepalen.
Notities voor bellers
Met deze methode wordt netwerkverkeer gegenereerd.