AIDE .NET

WebClient C# (Comment ça marche pour les développeurs)

Publié juin 6, 2024
Partager:

WebClient est une classe puissante en C# conçue pour envoyer et recevoir des données sur le web. Il fait partie de l'espace de noms System.Net du Framework .NET et convient à diverses applications, du simple téléchargement de fichiers à l'envoi de données à un serveur web.

Ce tutoriel explique comment utiliser efficacement la classe WebClient, en se concentrant sur ses fonctionnalités de base et sur la manière de gérer des scénarios courants tels que le téléchargement de fichiers et l'affichage de données. Nous explorerons également lesBibliothèque IronPDF dans le contexte de l'utilisation de WebClient.

Utilisation de base de WebClient

Création d'un nouveau WebClient

Pour commencer à utiliser WebClient, vous devez en créer une instance. Cette instance sert de passerelle pour effectuer des requêtes HTTP.

Voici une manière simple d'instancier un WebClient :

WebClient client = new WebClient();
WebClient client = new WebClient();
Dim client As New WebClient()
VB   C#

Ce nouveau WebClient() est une configuration de base. Elle prépare votre application à interagir avec les serveurs HTTP. En créant cette instance, vous accédez à une série de méthodes offertes par la classe WebClient pour télécharger et téléverser des données.

Définition des propriétés du WebClient

Avant de commencer à envoyer des requêtes, vous pouvez personnaliser le comportement de votre instance de WebClient. Par exemple, vous pouvez définir un en-tête d'agent utilisateur pour indiquer au serveur le nom du client qui effectue la requête :

// Adding user-agent to the HTTP headers
client.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)";
// Adding user-agent to the HTTP headers
client.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)";
' Adding user-agent to the HTTP headers
client.Headers("User-Agent") = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
VB   C#

La définition de l'en-tête user agent est importante car certains serveurs vérifient cet en-tête pour voir si la demande provient d'un navigateur ou d'un appareil reconnu. Cela peut avoir une incidence sur la manière dont les serveurs répondent à vos demandes.

Téléchargement de données à l'aide de WebClient

Téléchargement simple de fichiers

WebClient fournit une méthode simple pour télécharger des fichiers directement d'une URL vers un fichier local. Cette méthode est utile pour les applications qui doivent fonctionner avec des ressources externes, comme le téléchargement de fichiers de configuration ou de mises à jour.

// Download file from the specified URI address
string address = "http://example.com/file.zip";
string localFile = "C:\\Downloads\\file.zip";
try
{
    client.DownloadFile(address, localFile);
    Console.WriteLine("Download complete.");
}
catch (Exception ex)
{
    Console.WriteLine("Download failed: " + ex.Message);
}
// Download file from the specified URI address
string address = "http://example.com/file.zip";
string localFile = "C:\\Downloads\\file.zip";
try
{
    client.DownloadFile(address, localFile);
    Console.WriteLine("Download complete.");
}
catch (Exception ex)
{
    Console.WriteLine("Download failed: " + ex.Message);
}
' Download file from the specified URI address
Dim address As String = "http://example.com/file.zip"
Dim localFile As String = "C:\Downloads\file.zip"
Try
	client.DownloadFile(address, localFile)
	Console.WriteLine("Download complete.")
Catch ex As Exception
	Console.WriteLine("Download failed: " & ex.Message)
End Try
VB   C#

Dans cet exemple, DownloadFile est utilisé pour récupérer un fichier à partir d'une string address et le sauvegarder en tant que fichier local. Le processus est enveloppé dans un bloc try-catch pour gérer les erreurs potentielles, telles qu'une erreur interne du serveur ou des problèmes de connectivité.

Traitement des données téléchargées en mémoire

Il peut arriver que vous souhaitiez traiter les données téléchargées directement en mémoire sans les enregistrer sur un disque. Cela peut être fait en utilisant la méthode DownloadData, qui renvoie un tableau d'octets :

string uriAddress = "http://example.com/data.json";
try
{
    byte[] data = client.DownloadData(uriAddress);
    string json = System.Text.Encoding.UTF8.GetString(data);
    Console.WriteLine("Data received: " + json);
}
catch (Exception ex)
{
    Console.WriteLine("Error receiving data: " + ex.Message);
}
string uriAddress = "http://example.com/data.json";
try
{
    byte[] data = client.DownloadData(uriAddress);
    string json = System.Text.Encoding.UTF8.GetString(data);
    Console.WriteLine("Data received: " + json);
}
catch (Exception ex)
{
    Console.WriteLine("Error receiving data: " + ex.Message);
}
Dim uriAddress As String = "http://example.com/data.json"
Try
	Dim data() As Byte = client.DownloadData(uriAddress)
	Dim json As String = System.Text.Encoding.UTF8.GetString(data)
	Console.WriteLine("Data received: " & json)
Catch ex As Exception
	Console.WriteLine("Error receiving data: " & ex.Message)
End Try
VB   C#

Ici, les données de uriAddress sont téléchargées dans un tableau d'octets. Il est ensuite converti en chaîne de caractères si les données sont au format JSON. Le traitement des données en mémoire est particulièrement utile lorsqu'il s'agit d'API qui renvoient des données au format JSON.

Téléchargement de données à l'aide du WebClient

Envoi de données à un serveur

Le WebClient peut également être utilisé pour envoyer des données à un serveur. Pour ce faire, on utilise généralement la méthode HTTP POST, qui permet d'envoyer des données dans le corps de la requête.

string postAddress = "http://example.com/api/post";
// Prepare string data for POST request
string stringData = "name=John&age=30";
byte[] postData = System.Text.Encoding.ASCII.GetBytes(stringData);
try
{
    byte[] response = client.UploadData(postAddress, "POST", postData);
    // Log response headers and content
    Console.WriteLine("Response received: " + System.Text.Encoding.ASCII.GetString(response));
}
catch (Exception ex)
{
    Console.WriteLine("Post failed: " + ex.Message);
}
string postAddress = "http://example.com/api/post";
// Prepare string data for POST request
string stringData = "name=John&age=30";
byte[] postData = System.Text.Encoding.ASCII.GetBytes(stringData);
try
{
    byte[] response = client.UploadData(postAddress, "POST", postData);
    // Log response headers and content
    Console.WriteLine("Response received: " + System.Text.Encoding.ASCII.GetString(response));
}
catch (Exception ex)
{
    Console.WriteLine("Post failed: " + ex.Message);
}
Dim postAddress As String = "http://example.com/api/post"
' Prepare string data for POST request
Dim stringData As String = "name=John&age=30"
Dim postData() As Byte = System.Text.Encoding.ASCII.GetBytes(stringData)
Try
	Dim response() As Byte = client.UploadData(postAddress, "POST", postData)
	' Log response headers and content
	Console.WriteLine("Response received: " & System.Text.Encoding.ASCII.GetString(response))
Catch ex As Exception
	Console.WriteLine("Post failed: " & ex.Message)
End Try
VB   C#

Cet extrait de code envoie postData au serveur. Les données sont d'abord encodées dans un tableau d'octets avant d'être envoyées. WebClient gère automatiquement l'en-tête de type de contenu pour les données sous forme de tableau d'octets, mais si vous devez envoyer des données dans un format différent, tel que JSON, vous devrez peut-être définir manuellement l'en-tête de type de contenu.

IronPDF avec WebClient

IronPDF est une bibliothèque .NET qui permet aux développeurs de créer, d'éditer et de gérer facilement des fichiers PDF. Il utilise un moteur de rendu Chrome pour un rendu précisConversion de HTML en PDF. Cette bibliothèque permet de convertir du contenu web, HTML et des images en PDF et comprend des fonctionnalités telles que les signatures numériques et la gestion des formulaires.

Il fonctionne avec différentes versions de .NET et prend en charge plusieurs systèmes d'exploitation, ce qui le rend polyvalent pour différents environnements de développement. IronPDF offre une documentation complète et une assistance solide pour aider les développeurs à intégrer les fonctionnalités PDF en douceur.

Exemple de code

Voici un exemple basique d'utilisation d'IronPDF avec C# pour convertir un contenu HTML en PDF en utilisant la classe WebClient. Cet exemple de code montre comment récupérer du HTML à partir d'une URL et comment utiliser IronPDF pour générer un fichier PDF à partir de ce HTML.

using IronPdf;
using System.Net;
class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        // Create a new WebClient instance to download HTML
        using (WebClient client = new WebClient())
        {
            // Specify the URL of the HTML page
            string url = "http://example.com";
            string htmlString = client.DownloadString(url);
            // Create a new HTML to PDF converter instance
            var renderer = new ChromePdfRenderer();
            // Convert HTML string to PDF
            var pdf = renderer.RenderHtmlAsPdf(htmlString);
            // Save the PDF to a file
            pdf.SaveAs("output.pdf");
        }
    }
}
using IronPdf;
using System.Net;
class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        // Create a new WebClient instance to download HTML
        using (WebClient client = new WebClient())
        {
            // Specify the URL of the HTML page
            string url = "http://example.com";
            string htmlString = client.DownloadString(url);
            // Create a new HTML to PDF converter instance
            var renderer = new ChromePdfRenderer();
            // Convert HTML string to PDF
            var pdf = renderer.RenderHtmlAsPdf(htmlString);
            // Save the PDF to a file
            pdf.SaveAs("output.pdf");
        }
    }
}
Imports IronPdf
Imports System.Net
Friend Class Program
	Shared Sub Main()
		License.LicenseKey = "License-Key"
		' Create a new WebClient instance to download HTML
		Using client As New WebClient()
			' Specify the URL of the HTML page
			Dim url As String = "http://example.com"
			Dim htmlString As String = client.DownloadString(url)
			' Create a new HTML to PDF converter instance
			Dim renderer = New ChromePdfRenderer()
			' Convert HTML string to PDF
			Dim pdf = renderer.RenderHtmlAsPdf(htmlString)
			' Save the PDF to a file
			pdf.SaveAs("output.pdf")
		End Using
	End Sub
End Class
VB   C#

Veillez à ajouter la bibliothèque IronPDF à votre projet. Vous pouvez généralement le faire via NuGet dans votre environnement de développement, en utilisant une commande comme :

Install-Package IronPdf

Voici le fichier PDF généré :

WebClient C#(Comment ça marche pour les développeurs) : Figure 1

Conclusion

WebClient est une classe polyvalente du Framework .NET idéale pour diverses opérations de réseau, notamment le téléchargement et le chargement de fichiers. Ce tutoriel explique comment lancer un WebClient, personnaliser ses en-têtes, gérer les téléchargements de données et gérer les erreurs de manière efficace.

Au fur et à mesure que vous vous familiariserez avec WebClient, vous pourrez explorer des fonctionnalités plus avancées et envisager de passer à des solutions plus robustes comme HttpClient pour des scénarios plus complexes. IronPDF permet aux développeurs d'explorer ses fonctionnalités à l'aide d'unoptions de licence et tarifs avec des licences disponibles auprès de $749.

< PRÉCÉDENT
Polly Retry (Comment ça marche pour les développeurs)
SUIVANT >
C# Catch Multiple Exceptions (Comment ça marche pour les développeurs)