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

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);
}
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 :

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;
}
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!

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