FtpWebRequest.GetRequestStream Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Stream ab, der zum Hochladen von Daten auf einen FTP-Server verwendet wird.
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
Gibt zurück
Eine nicht schreibgeschützte Stream-Instanz, die zum Speichern von Daten verwendet wird, die durch die aktuelle Anforderung an den Server gesendet werden.
Ausnahmen
BeginGetRequestStream(AsyncCallback, Object) wurde aufgerufen und nicht abgeschlossen.
- oder -
Ein HTTP-Proxy ist aktiviert, und Sie haben versucht, einen anderen FTP-Befehl als DownloadFile, ListDirectory oder ListDirectoryDetails zu verwenden.
Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.
Die Method-Eigenschaft ist nicht auf UploadFile oder AppendFile festgelegt.
Beispiele
Das folgende Codebeispiel veranschaulicht das Kopieren einer Datei in den Datenstrom einer Anforderung und das Senden einer Anforderung an den Server, um die Daten hochzuladen und an eine Datei anzufügen.
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;
}
Hinweise
Legen Sie die Anforderungseigenschaften vor dem Aufrufen der GetRequestStream -Methode fest. Nachdem Sie die Daten in den Stream geschrieben haben, müssen Sie den Stream schließen, bevor Sie die Anforderung senden.
Wenn Sie die Method Eigenschaft nicht auf UploadFile oder AppendFilefestgelegt haben, können Sie den Stream nicht abrufen.
GetRequestStream blockiert, während auf den Stream gewartet wird. Um dies zu verhindern, rufen Sie die BeginGetRequestStream -Methode anstelle von GetRequestStreamauf.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.
Hinweise für Aufrufer
Diese Methode generiert Netzwerkdatenverkehr.