Maison > développement back-end > C++ > Comment envoyer des fichiers via HTTP POST à ​​l'aide de C# : un guide complet

Comment envoyer des fichiers via HTTP POST à ​​l'aide de C# : un guide complet

Susan Sarandon
Libérer: 2025-01-11 19:26:43
original
575 Les gens l'ont consulté

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

Explication détaillée du téléchargement de fichiers C# HTTP POST

Cet article présentera en détail comment utiliser C# pour télécharger des fichiers sur un serveur Web. Il s'agit d'une exigence courante dans le développement d'applications Windows et nécessite une compréhension des principes des requêtes de formulaire HTTP.

Implémenté à l'aide de HttpWebRequest (applicable avant .NET 4.5)

Avant .NET 4.5, les téléchargements de fichiers utilisaient généralement l'objet HttpWebRequest traditionnel. Les étapes sont les suivantes :

  1. Créez un objet HttpWebRequest, en spécifiant l'URI, la méthode et les autres en-têtes nécessaires.
  2. Créez un objet HttpStream en appelant req.GetRequestStream().
  3. Lisez le contenu du fichier à télécharger dans le flux.

Exemple de code :

<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>
Copier après la connexion

Implémenté à l'aide de HttpClient et MultipartFormDataContent (pour .NET 4.5 et supérieur)

.NET 4.5 et versions ultérieures (ou en utilisant le package NuGet « Microsoft.Net.Http » dans .NET 4.0), vous pouvez utiliser HttpClient et MultipartFormDataContent pour simuler plus facilement les demandes de formulaire.

Exemple de code :

<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>
Copier après la connexion

Avec les étapes ci-dessus, vous pouvez facilement télécharger des fichiers sur un serveur Web via HTTP POST à ​​l'aide d'une application C#.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal