FtpWebRequest.GetRequestStream Metod

Definition

Hämtar dataströmmen som används för att ladda upp data till en FTP-server.

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

Returer

En skrivbar Stream instans som används för att lagra data som ska skickas till servern av den aktuella begäran.

Undantag

BeginGetRequestStream(AsyncCallback, Object) har anropats och har inte slutförts.

-eller-

En HTTP-proxy är aktiverad och du försökte använda ett annat FTP-kommando än DownloadFile, ListDirectoryeller ListDirectoryDetails.

Det gick inte att upprätta en anslutning till FTP-servern.

Egenskapen Method är inte inställd på UploadFile eller AppendFile.

Exempel

Följande kodexempel visar hur du kopierar en fil till en begärans dataström och skickar en begäran till servern om att ladda upp data och lägga till dem i en fil.

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

Kommentarer

Ange egenskaperna för begäran innan du GetRequestStream anropar metoden. När du har skrivit data till dataströmmen måste du stänga strömmen innan du skickar begäran.

Om du inte har angett Method egenskapen till UploadFile eller AppendFilekan du inte hämta dataströmmen.

GetRequestStream block medan du väntar på strömmen. För att förhindra detta anropar du BeginGetRequestStream -metoden i stället för GetRequestStream.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing i .NET Framework.

Anteckningar till anropare

Den här metoden genererar nätverkstrafik.

Gäller för

Se även