Поделиться через


FtpWebRequest.GetResponse Метод

Определение

Возвращает ответ 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

Возвращаемое значение

Ссылка WebResponse , содержащая FtpWebResponse экземпляр. Этот объект содержит ответ FTP-сервера на запрос.

Исключения

GetResponse() или BeginGetResponse(AsyncCallback, Object) уже был вызван для этого экземпляра.

–или–

Прокси-сервер HTTP включен, и вы попытались использовать команду FTP, отличной от DownloadFile, ListDirectoryили ListDirectoryDetails.

EnableSsl имеет значение true, но сервер не поддерживает эту функцию.

–или–

Задано Timeout значение и истекло время ожидания.

Примеры

В следующем примере кода показано копирование файла в поток данных запроса и отправка запроса на добавление данных к файлу на сервер. Пример вызовов GetResponse для отправки запроса и блокировки до тех пор, пока ответ не будет возвращен сервером.

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;
}

Комментарии

Чтобы получить доступ к свойствам, зависящим от FTP, необходимо привести объект, WebResponse возвращаемый этим методом FtpWebResponse.

GetResponse Вызывает создание подключения к элементу управления и может также создать подключение к данным. GetResponse блокируется до получения ответа. Чтобы предотвратить это, вы можете выполнять эту операцию асинхронно, вызывая BeginGetResponseEndGetResponse вместо нее GetResponseметоды.

Proxy Если свойство задано напрямую или в файле конфигурации, обмен данными с FTP-сервером осуществляется через прокси-сервер.

WebException Если создается исключение, используйте ResponseStatus свойства исключения, чтобы определить ответ с сервера.

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.

Замечание

Несколько вызовов для GetResponse возврата одного объекта ответа; запрос не перезаписывается.

Примечания для тех, кто вызывает этот метод

Этот метод создает сетевой трафик.

Применяется к

См. также раздел