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
DDDOriginal
2025-01-11 19:32:44615Durchsuche

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>

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>

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>

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>

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!

Stellungnahme:
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