FtpWebRequest.GetRequestStream Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает поток, используемый для отправки данных на FTP-сервер.
public:
override System::IO::Stream ^ GetRequestStream();
public override System.IO.Stream GetRequestStream();
override this.GetRequestStream : unit -> System.IO.Stream
Public Overrides Function GetRequestStream () As Stream
Возвращаемое значение
Записываемый Stream экземпляр, используемый для хранения данных, отправляемых на сервер текущим запросом.
Исключения
BeginGetRequestStream(AsyncCallback, Object) был вызван и не завершен.
–или–
Прокси-сервер HTTP включен, и вы попытались использовать команду FTP, отличной от DownloadFile, ListDirectoryили ListDirectoryDetails.
Не удалось установить подключение к FTP-серверу.
Свойство Method не задано или AppendFileне заданоUploadFile.
Примеры
В следующем примере кода показано копирование файла в поток данных запроса и отправка запроса серверу для отправки данных и его добавления в файл.
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;
}
Комментарии
Задайте свойства запроса перед вызовом GetRequestStream метода. После записи данных в поток необходимо закрыть поток перед отправкой запроса.
Если свойство UploadFile не задано Method или AppendFileне задано, невозможно получить поток.
GetRequestStream блокируется во время ожидания потока. Чтобы предотвратить это, вызовите BeginGetRequestStream метод вместо GetRequestStream.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Примечания для тех, кто вызывает этот метод
Этот метод создает сетевой трафик.