Maison > développement back-end > C++ > Comment effectuer des téléchargements de fichiers HTTP POST en C# ?

Comment effectuer des téléchargements de fichiers HTTP POST en C# ?

DDD
Libérer: 2025-01-11 19:32:44
original
532 Les gens l'ont consulté

How to Perform HTTP POST File Uploads in C#?

Téléchargement de fichiers HTTP POST en C#

L'envoi de fichiers via HTTP POST est une tâche courante dans les applications Web. En C#, vous pouvez utiliser des HttpWebRequest classes et des MultipartFormDataContent objets pour réaliser cette fonctionnalité.

Créer un objet HttpWebRequest

Tout d'abord, créez un objet HttpWebRequest et spécifiez l'URI du serveur Web. Ensuite, définissez l'attribut Method sur "POST" et l'attribut ContentType sur le type de contenu approprié du fichier envoyé.

<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "POST";
req.ContentType = file.ContentType;</code>
Copier après la connexion

Fichier prêt à être téléchargé

Pour envoyer un fichier, créez un objet MultipartFormDataContent et incluez-le dans la requête. MultipartFormDataContent Vous permet d'envoyer à la fois des données de formulaire et des données binaires en une seule requête.

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

Envoyer la demande

Enfin, utilisez GetResponse() ou GetResponseAsync() pour envoyer la requête au serveur Web.

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

try
{
    response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
    // 处理异常
}</code>
Copier après la connexion

Alternatives pour .NET 4.0 et versions antérieures

Pour .NET 4.0 et versions antérieures, vous pouvez utiliser le package Microsoft.Net.Http de NuGet pour simplifier le processus de téléchargement de fichiers :

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

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal