Heim > Backend-Entwicklung > C++ > So senden Sie Dateien über HTTP POST mit C#: Eine umfassende Anleitung

So senden Sie Dateien über HTTP POST mit C#: Eine umfassende Anleitung

Susan Sarandon
Freigeben: 2025-01-11 19:26:43
Original
575 Leute haben es durchsucht

How to Send Files via HTTP POST Using C#: A Comprehensive Guide

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:

  1. Erstellen Sie ein HttpWebRequest-Objekt und geben Sie den URI, die Methode und andere erforderliche Header an.
  2. Erstellen Sie ein HttpStream-Objekt, indem Sie req.GetRequestStream() aufrufen.
  3. Lesen Sie den Inhalt der Datei, die in den Stream hochgeladen werden soll.

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage