FtpWebRequest.BeginGetResponse(AsyncCallback, Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Börjar skicka en begäran och tar emot ett svar från en FTP-server asynkront.
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
Parametrar
- callback
- AsyncCallback
Ett AsyncCallback ombud som refererar till den metod som ska anropas när åtgärden är klar.
- state
- Object
Ett användardefinierat objekt som innehåller information om åtgärden. Det här objektet skickas till ombudet callback när åtgärden är klar.
Returer
En IAsyncResult instans som anger status för åtgärden.
Undantag
GetResponse() eller BeginGetResponse(AsyncCallback, Object) har redan anropats för den här instansen.
Exempel
Följande kodexempel visar hur du avslutar en asynkron åtgärd för att hämta en begärans dataström och sedan startar en begäran för att hämta svaret. Det här kodexemplet är en del av ett större exempel som tillhandahålls för klassöversikten FtpWebRequest .
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;
}
}
Kommentarer
Du måste slutföra den asynkrona åtgärden genom att anropa EndGetResponse metoden.
EndGetResponse Anropas vanligtvis av metoden som refereras av callback. Om du vill fastställa tillståndet för åtgärden kontrollerar du egenskaperna i objektet som IAsyncResult returneras av BeginGetResponse -metoden.
Om egenskapen Proxy anges, antingen direkt eller i en konfigurationsfil, sker kommunikationen med FTP-servern via den angivna proxyn.
BeginGetResponse blockeras inte i väntan på svaret från servern. Om du vill blockera anropar du GetResponse metoden i stället för BeginGetResponse.
Mer information om hur du använder den asynkrona programmeringsmodellen finns i Anropa synkrona metoder asynkront.
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing i .NET Framework.
Note
Om en WebException genereras använder du Response egenskaperna och Status för undantaget för att fastställa svaret från servern.
Anteckningar till anropare
Den här metoden genererar nätverkstrafik.