FtpWebRequest.GetResponse Méthode

Définition

Retourne la réponse du serveur FTP.

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. Cet objet contient la réponse du serveur FTP à la demande.

Exceptions

GetResponse() ou BeginGetResponse(AsyncCallback, Object) a déjà été appelé pour cette instance.

- ou -

Un proxy HTTP est activé, et vous avez tenté d'utiliser une commande FTP autre que DownloadFile, ListDirectory ou ListDirectoryDetails.

EnableSsl a la valeur true, mais le serveur ne prend pas en charge cette fonctionnalité.

- ou -

Un Timeout a été spécifié et le délai d'attente a expiré.

Exemples

L’exemple de code suivant illustre la copie d’un fichier dans le flux de données d’une demande et l’envoi d’une demande d’ajout de données à un fichier au serveur. L’exemple appelle GetResponse pour envoyer la demande et bloquer jusqu’à ce que la réponse soit retournée par le serveur.

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 l’objet WebResponse retourné par cette méthode en FtpWebResponse.

GetResponse provoque l’établissement d’une connexion de contrôle et peut également créer une connexion de données. GetResponse se bloque jusqu’à ce que la réponse soit reçue. Pour éviter cela, vous pouvez effectuer cette opération de manière asynchrone en appelant les méthodes et à la BeginGetResponse place de GetResponse.EndGetResponse

Si la Proxy propriété est définie, directement ou dans un fichier de configuration, les communications avec le serveur FTP sont effectuées via le proxy.

Si un WebException est levée, utilisez les Response propriétés et Status de l’exception pour déterminer la réponse du serveur.

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans le .NET Framework.

Notes

Plusieurs appels pour renvoyer GetResponse le même objet de réponse ; la demande n’est pas rééditée.

Notes pour les appelants

Cette méthode génère du trafic réseau.

S’applique à

Voir aussi