FtpWebRequest.GetResponse Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.