Maison >développement back-end >C++ >Comment télécharger des fichiers via HTTP POST en utilisant C# ?

Comment télécharger des fichiers via HTTP POST en utilisant C# ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-11 19:21:42765parcourir

How to Upload Files via HTTP POST using C#?

Téléchargement de fichiers HTTP POST C# : un guide complet

Ce guide explique comment utiliser C# pour télécharger des fichiers sur un serveur distant via une requête HTTP POST.

1. Construction de la requête HTTP

Tout d'abord, créez un objet HttpWebRequest spécifiant l'URL cible. Définissez la propriété Method sur "POST" et définissez ContentType et ContentLength de manière appropriée.

2. Paramètres d'authentification et de connexion

Configurez la propriété Credentials de la requête avec les informations d'identification utilisateur nécessaires. Activez la pré-authentification en définissant PreAuthenticate sur true.

3. Création de données de formulaire en plusieurs parties

Pour C# 4.5 et versions ultérieures, exploitez la classe MultipartFormDataContent pour créer des données de formulaire en plusieurs parties. Ajoutez à la fois des données de chaîne et de fichier en utilisant respectivement StringContent et StreamContent.

4. Envoi de la demande et traitement de la réponse

Envoyez la demande en utilisant req.GetResponse() et gérez les éventuelles exceptions. Traitez la réponse du serveur en conséquence.

5. Exemple de code

Le code suivant illustre le processus :

<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.KeepAlive = false;
req.Method = "POST";
req.Credentials = new NetworkCredential(user.UserName, user.UserPassword);
req.PreAuthenticate = true;
req.ContentType = file.ContentType;
req.ContentLength = file.Length;

using (var formData = new MultipartFormDataContent())
{
    formData.Add(new StringContent(paramString), "param1", "param1");
    formData.Add(new StreamContent(paramFileStream), "file1", "file1");
    formData.Add(new ByteArrayContent(paramFileBytes), "file2", "file2");
    using (var client = new HttpClient())
    {
        var response = await client.PostAsync(uri, formData);
        // Process the response here...
    }
}</code>

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