Detaillierte Erläuterung des C#-HTTP-POST-Datei-Uploads
In diesem Artikel wird detailliert beschrieben, wie Sie mit C# Dateien auf einen Webserver hochladen. Dies ist eine häufige Anforderung bei der Windows-Anwendungsentwicklung und erfordert ein Verständnis der Prinzipien von HTTP-Formularanforderungen.
Implementiert mit HttpWebRequest (anwendbar vor .NET 4.5)
Vor .NET 4.5 wurde für Datei-Uploads normalerweise das herkömmliche HttpWebRequest-Objekt verwendet. Die Schritte sind wie folgt:
req.GetRequestStream()
aufrufen. Beispielcode:
<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest; req.KeepAlive = false; req.Method = "POST"; req.ContentType = file.ContentType; req.ContentLength = file.Length; using (Stream requestStream = req.GetRequestStream()) using (Stream fileStream = File.OpenRead(file.FileName)) { fileStream.CopyTo(requestStream); }</code>
Implementiert mit HttpClient und MultipartFormDataContent (für .NET 4.5 und höher)
.NET 4.5 und höher (oder mithilfe des NuGet-Pakets „Microsoft.Net.Http“ in .NET 4.0) können Sie HttpClient und MultipartFormDataContent verwenden, um Formularanforderungen einfacher zu simulieren.
Beispielcode:
<code class="language-csharp">private async Task<Stream> Upload(string actionUrl, string paramString, Stream paramFileStream, byte[] paramFileBytes) { HttpContent stringContent = new StringContent(paramString); HttpContent fileStreamContent = new StreamContent(paramFileStream); HttpContent bytesContent = new ByteArrayContent(paramFileBytes); using (var client = new HttpClient()) using (var formData = new MultipartFormDataContent()) { formData.Add(stringContent, "param1", "param1"); formData.Add(fileStreamContent, "file1", "file1"); formData.Add(bytesContent, "file2", "file2"); var response = await client.PostAsync(actionUrl, formData); if (response.IsSuccessStatusCode) { return await response.Content.ReadAsStreamAsync(); } } return null; }</code>
Mit den oben genannten Schritten können Sie mithilfe einer C#-Anwendung problemlos Dateien per HTTP POST auf einen Webserver hochladen.
Das obige ist der detaillierte Inhalt vonSo senden Sie Dateien über HTTP POST mit C#: Eine umfassende Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!