Heim > Backend-Entwicklung > C++ > Wie führe ich HTTP-POST-Datei-Uploads in C# durch?

Wie führe ich HTTP-POST-Datei-Uploads in C# durch?

DDD
Freigeben: 2025-01-11 19:32:44
Original
532 Leute haben es durchsucht

How to Perform HTTP POST File Uploads in C#?

HTTP-POST-Datei-Upload in C#

Das Senden von Dateien über HTTP POST ist eine häufige Aufgabe in Webanwendungen. In C# können Sie HttpWebRequest-Klassen und MultipartFormDataContent-Objekte verwenden, um diese Funktionalität zu erreichen.

HttpWebRequest-Objekt erstellen

Erstellen Sie zunächst ein HttpWebRequest-Objekt und geben Sie den URI des Webservers an. Setzen Sie dann das Method-Attribut auf „POST“ und das ContentType-Attribut auf den entsprechenden Inhaltstyp der zu sendenden Datei.

<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "POST";
req.ContentType = file.ContentType;</code>
Nach dem Login kopieren

Datei bereit zum Hochladen

Um eine Datei zu senden, erstellen Sie ein MultipartFormDataContent-Objekt und fügen Sie es in die Anfrage ein. MultipartFormDataContent Ermöglicht das Senden von Formulardaten und Binärdaten in einer Anfrage.

<code class="language-csharp">using (var formData = new MultipartFormDataContent())
{
    formData.Add(new StringContent(file.Name), "file");
    formData.Add(new StreamContent(file.Content), file.Name, file.Name);
}</code>
Nach dem Login kopieren

Anfrage senden

Abschließend senden Sie die Anfrage mit GetResponse() oder GetResponseAsync() an den Webserver.

<code class="language-csharp">HttpWebResponse response = null;

try
{
    response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
    // 处理异常
}</code>
Nach dem Login kopieren

Alternativen für .NET 4.0 und niedriger

Für .NET 4.0 und niedriger können Sie das Microsoft.Net.Http-Paket von NuGet verwenden, um den Datei-Upload-Prozess zu vereinfachen:

<code class="language-csharp">using System.Net.Http;
using System.Net.Http.Headers;

private async Task<System.IO.Stream> Upload(string actionUrl, string paramString, Stream paramFileStream, byte[] paramFileBytes)
{
    using (var client = new HttpClient())
    {
        using (var formData = new MultipartFormDataContent())
        {
            formData.Add(new StringContent(paramString), "param1");
            formData.Add(new StreamContent(paramFileStream), "file1");
            formData.Add(new ByteArrayContent(paramFileBytes), "file2");

            var response = await client.PostAsync(actionUrl, formData);
            if (!response.IsSuccessStatusCode)
            {
                return null;
            }
            return await response.Content.ReadAsStreamAsync();
        }
    }
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie führe ich HTTP-POST-Datei-Uploads in C# durch?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage