FtpWebRequest.GetResponse FtpWebRequest.GetResponse FtpWebRequest.GetResponse FtpWebRequest.GetResponse Method

Définition

Retourne la réponse du serveur FTP.Returns the FTP server response.

public:
 override System::Net::WebResponse ^ GetResponse();
public override System.Net.WebResponse GetResponse ();
override this.GetResponse : unit -> System.Net.WebResponse
Public Overrides Function GetResponse () As WebResponse

Retours

Référence WebResponse qui contient une instance de FtpWebResponse.A WebResponse reference that contains an FtpWebResponse instance. Cet objet contient la réponse du serveur FTP à la demande.This object contains the FTP server's response to the request.

Exceptions

GetResponse() ou BeginGetResponse(AsyncCallback, Object) a déjà été appelé pour cette instance.GetResponse() or BeginGetResponse(AsyncCallback, Object) has already been called for this instance.

ou-or- Un proxy HTTP est activé, et vous avez tenté d'utiliser une commande FTP autre que DownloadFile, ListDirectory ou ListDirectoryDetails.An HTTP proxy is enabled, and you attempted to use an FTP command other than DownloadFile, ListDirectory, or ListDirectoryDetails.

EnableSsl a la valeur true, mais le serveur ne prend pas en charge cette fonctionnalité.EnableSsl is set to true, but the server does not support this feature.

ou-or- Un Timeout a été spécifié et le délai d'attente a expiré.A Timeout was specified and the timeout has expired.

Exemples

L’exemple de code suivant illustre la copie d’un fichier de flux de données d’une demande et envoi d’une demande pour ajouter des données dans un fichier sur le serveur.The following code example demonstrates copying a file to a request's data stream and sending a request to append data to a file to the server. L’exemple appelle GetResponse pour envoyer la demande et de bloquer jusqu'à ce que la réponse est renvoyée par le serveur.The example calls GetResponse to send the request and block until the response is returned by the server.

static bool AppendFileOnServer( String^ fileName, Uri^ serverUri )
{
   // The URI described by serverUri should use the ftp:// scheme.
   // It contains the name of the file on the server.
   // Example: ftp://contoso.com/someFile.txt. 
   // The fileName parameter identifies the file containing 
   // the data to be appended to the file on the server.
   if ( serverUri->Scheme != Uri::UriSchemeFtp )
   {
      return false;
   }

   // Get the object used to communicate with the server.
   FtpWebRequest^ request = dynamic_cast<FtpWebRequest^>(WebRequest::Create( serverUri ));
   request->Method = WebRequestMethods::Ftp::AppendFile;
   StreamReader^ sourceStream = gcnew StreamReader( fileName );
   array<Byte>^fileContents = Encoding::UTF8->GetBytes( sourceStream->ReadToEnd() );
   sourceStream->Close();
   request->ContentLength = fileContents->Length;

   // This example assumes the FTP site uses anonymous logon.
   request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" );
   Stream^ requestStream = request->GetRequestStream();
   requestStream->Write( fileContents, 0, fileContents->Length );
   requestStream->Close();
   FtpWebResponse^ response = dynamic_cast<FtpWebResponse^>(request->GetResponse());
   Console::WriteLine( "Append status: {0}", response->StatusDescription );
   response->Close();
   return true;
}
public static bool AppendFileOnServer(string fileName, Uri serverUri)
{
    // The URI described by serverUri should use the ftp:// scheme.
    // It contains the name of the file on the server.
    // Example: ftp://contoso.com/someFile.txt. 
    // The fileName parameter identifies the file containing 
    // the data to be appended to the file on the server.
    
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    request.Method = WebRequestMethods.Ftp.AppendFile;
    
    StreamReader sourceStream = new StreamReader(fileName);
    byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
    sourceStream.Close();
    request.ContentLength = fileContents.Length;

    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();
    FtpWebResponse response = (FtpWebResponse) request.GetResponse();
    
    Console.WriteLine("Append status: {0}",response.StatusDescription);
    
    response.Close();  
    return true;
}

Remarques

Pour accéder aux propriétés spécifiques à FTP, vous devez caster la WebResponse objet retourné par cette méthode à FtpWebResponse.To access the FTP-specific properties, you must cast the WebResponse object returned by this method to FtpWebResponse.

GetResponse provoque une connexion de contrôle soit établie et peut également créer une connexion de données.GetResponse causes a control connection to be established, and might also create a data connection. GetResponse bloque jusqu'à ce que la réponse est reçue.GetResponse blocks until the response is received. Pour éviter ce problème, vous pouvez effectuer cette opération de façon asynchrone en appelant le BeginGetResponse et EndGetResponse méthodes à la place de GetResponse.To prevent this, you can perform this operation asynchronously by calling the BeginGetResponse and EndGetResponse methods in place of GetResponse.

Si le Proxy propriété est définie, directement ou dans un fichier de configuration, les communications avec le serveur FTP s’effectuent via le proxy.If the Proxy property is set, either directly or in a configuration file, communications with the FTP server are made through the proxy.

Si un WebException est levée, utilisez la Response et Status propriétés de l’exception pour déterminer la réponse à partir du serveur.If a WebException is thrown, use the Response and Status properties of the exception to determine the response from the server.

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application.This member outputs trace information when you enable network tracing in your application. Pour plus d’informations, consultez le traçage réseau dans le .NET Framework.For more information, see Network Tracing in the .NET Framework.

Notes

Appels multiples à GetResponse retournent le même objet de réponse ; la demande n’est pas relancée.Multiple calls to GetResponse return the same response object; the request is not reissued.

Notes pour les appelants

Cette méthode génère un trafic réseau.This method generates network traffic.

S’applique à

Voir aussi