
RestSharp C# (Comment cela fonctionne pour les développeurs)
RestSharp est une bibliothèque .NET open-source populaire pour effectuer des requêtes HTTP en C#. Il simplifie le processus de travail avec les APIs RESTful, fournissant un moyen direct et flexible de communiquer avec les services Web. Dans cet article, nous explorerons les fonctionnalités cruciales de RestSharp et IronPDF et démontrerons comment vous pouvez extraire des données et générer un PDF.
Pourquoi RestSharp ?
Dans les applications modernes multi-niveaux, différents services ont souvent besoin de communiquer entre eux, et RestSharp offre un moyen simple et efficace en encapsulant toutes les complexités. Cela simplifie grandement le processus de développement logiciel.
Installer RestSharp
RestSharp est disponible en tant que package NuGet et peut être installé dans votre projet C#. Vous pouvez le faire en utilisant la console du gestionnaire de packages NuGet ou l'interface utilisateur du gestionnaire de packages NuGet de Visual Studio.
Effectuer des requêtes GET simples
Commençons par un exemple simple de requête GET vers une API RESTful en utilisant RestSharp. Supposons que nous souhaitions récupérer des informations d'une API publique ASP.NET core qui retourne des données utilisateur :
using RestSharp;
namespace rest_sharp_demo
{
class Program
{
static void Main()
{
// Base URL for the REST API
var baseUrl = "https://jsonplaceholder.typicode.com/users";
// Create a RestClientOptions with default credentials
var options = new RestClientOptions(baseUrl) { UseDefaultCredentials = true };
var client = new RestClient(options);
// Create a RestRequest for the GET method
var request = new RestRequest();
// Execute the request and get the response
var response = client.Get(request);
// Check if the request was successful
if (response.IsSuccessful)
{
// Output the response body content
Console.WriteLine(response.Content);
}
else
{
// Handle the error
Console.WriteLine($"Error: {response.ErrorMessage}");
}
}
// Additional method to log data
public void LogData(string msg)
{
Console.WriteLine(msg);
}
}
}Imports RestSharp
Namespace rest_sharp_demo
Class Program
Shared Sub Main()
' Base URL for the REST API
Dim baseUrl = "https://jsonplaceholder.typicode.com/users"
' Create a RestClientOptions with default credentials
Dim options = New RestClientOptions(baseUrl) With {
.UseDefaultCredentials = True
}
Dim client = New RestClient(options)
' Create a RestRequest for the GET method
Dim request = New RestRequest()
' Execute the request and get the response
Dim response = client.Get(request)
' Check if the request was successful
If response.IsSuccessful Then
' Output the response body content
Console.WriteLine(response.Content)
Else
' Handle the error
Console.WriteLine($"Error: {response.ErrorMessage}")
End If
End Sub
' Additional method to log data
Public Sub LogData(msg As String)
Console.WriteLine(msg)
End Sub
End Class
End NamespaceRestSharp supporte également les requêtes et réponses asynchrones en utilisant les méthodes d'API asynchrones.
Gestion des données de réponse
RestSharp fournit des méthodes pratiques pour désérialiser le contenu de la réponse dans des objets C#. Étendons notre exemple pour désérialiser les données de réponse JSON dans une liste d'objets utilisateurs :
// Deserialize JSON response into a list of User objects
var users = JsonSerializer.Deserialize<List<User>>(response.Content);
// Output user information
foreach (var user in users)
{
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}, Email: {user.Email}");
}' Deserialize JSON response into a list of User objects
Dim users = JsonSerializer.Deserialize(Of List(Of User))(response.Content)
' Output user information
For Each user In users
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}, Email: {user.Email}")
Next userDans cet exemple, nous avons défini une classe User avec des propriétés correspondant aux champs JSON. Nous avons utilisé JsonSerializer.Deserialize depuis l'espace de noms System.Text.Json.
public class User
{
[JsonPropertyName("company")]
public Company Company { get; set; }
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("phone")]
public string Phone { get; set; }
[JsonPropertyName("website")]
public string Website { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("username")]
public string Username { get; set; }
[JsonPropertyName("email")]
public string Email { get; set; }
[JsonPropertyName("address")]
public Address Address { get; set; }
}Public Class User
<JsonPropertyName("company")>
Public Property Company As Company
<JsonPropertyName("id")>
Public Property Id As Integer
<JsonPropertyName("phone")>
Public Property Phone As String
<JsonPropertyName("website")>
Public Property Website As String
<JsonPropertyName("name")>
Public Property Name As String
<JsonPropertyName("username")>
Public Property Username As String
<JsonPropertyName("email")>
Public Property Email As String
<JsonPropertyName("address")>
Public Property Address As Address
End ClassSortie
Tous les ID et noms d'utilisateurs sont affichés dans la sortie.

L'ensemble du code est disponible sur Git à ce lien.
Type de contenu
RestSharp prend en charge l'envoi de requêtes avec un corps XML ou JSON. Les méthodes AddJsonBody ou AddXmlBody de l'instance RestRequest peuvent être utilisées pour ajouter un corps JSON ou XML. RestSharp définira automatiquement le type de contenu. Il gère automatiquement les réponses JSON ou XML.
// Serialize the user object to JSON
var jsonBodyString = JsonSerializer.Serialize(newUser);
// Create a RestRequest for the POST method with the JSON request data
var requestData = new RestRequest().AddJsonBody(jsonBodyString);
var response = client.ExecutePost(requestData);' Serialize the user object to JSON
Dim jsonBodyString = JsonSerializer.Serialize(newUser)
' Create a RestRequest for the POST method with the JSON request data
Dim requestData = (New RestRequest()).AddJsonBody(jsonBodyString)
Dim response = client.ExecutePost(requestData)Envoi de données avec des requêtes POST
RestSharp prend également en charge l'envoi de données dans le corps de la requête, ce qui est courant lors de la création ou de la mise à jour de ressources. Modifions notre exemple pour démontrer une API de requête POST :
using RestSharp;
using System.Text.Json;
namespace rest_sharp_demo
{
class Program
{
static void Main()
{
var client = new RestClient("https://jsonplaceholder.typicode.com/users");
// New user object
var newUser = new User
{
Name = "John Doe",
Email = "john.doe@example.com"
};
// Serialize the user object to JSON
var jsonBody = JsonSerializer.Serialize(newUser);
// Create a RestRequest for the POST method with the JSON request body
var request = new RestRequest().AddJsonBody(jsonBody);
// Execute the POST request
var response = client.ExecutePost(request);
// Check if the request was successful
if (response.IsSuccessful)
{
// Output the response content
Console.WriteLine(response.Content);
}
else
{
Console.WriteLine($"Error: {response.ErrorMessage}");
}
}
}
}Imports RestSharp
Imports System.Text.Json
Namespace rest_sharp_demo
Class Program
Shared Sub Main()
Dim client = New RestClient("https://jsonplaceholder.typicode.com/users")
' New user object
Dim newUser = New User With {
.Name = "John Doe",
.Email = "john.doe@example.com"
}
' Serialize the user object to JSON
Dim jsonBody = JsonSerializer.Serialize(newUser)
' Create a RestRequest for the POST method with the JSON request body
Dim request = New RestRequest().AddJsonBody(jsonBody)
' Execute the POST request
Dim response = client.ExecutePost(request)
' Check if the request was successful
If response.IsSuccessful Then
' Output the response content
Console.WriteLine(response.Content)
Else
Console.WriteLine($"Error: {response.ErrorMessage}")
End If
End Sub
End Class
End NamespaceDans cet exemple, nous créons un nouvel objet User, le sérialisons en JSON et l'incluons dans le corps de la requête en utilisant la méthode AddJsonBody. Le serveur reçoit les données JSON et traite la requête en conséquence.
Sortie

Authentification
RestSharp prend également en charge l'envoi de requêtes avec authentification. Le RestClientOptions peut inclure des paramètres d'authentification.
var options = new RestClientOptions("https://auth.net")
{
Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret)
};Dim options = New RestClientOptions("https://auth.net") With {.Authenticator = New HttpBasicAuthenticator(_clientId, _clientSecret)}Ici, nous utilisons une authentification client ID secret basique, qui est envoyée dans chaque requête.
Gestion des erreurs
RestSharp peut gérer les erreurs qui se produisent lors des requêtes URL, comme les erreurs de délai d'attente, d'authentification ou d'autorisation. RestSharp ne lance pas automatiquement une exception si la requête échoue. Il faut le configurer manuellement.
Les configurations de gestion des erreurs suivantes peuvent être effectuées :
- FailOnDeserializationError : Définir cette propriété sur true indiquera à RestSharp de considérer la désérialisation échouée comme une erreur et de définir
ResponseStatussurErroren conséquence. - ThrowOnDeserializationError : Définir cette propriété sur true indiquera à RestSharp de lever une exception en cas d'échec de la désérialisation.
- ThrowOnAnyError : Lève une exception en cas d'erreur lors de la requête ou de la désérialisation.
var restClientOptions = new RestClientOptions(url)
{
ThrowOnAnyError = true
};
var client = new RestClient(restClientOptions);Dim restClientOptions As New RestClientOptions(url) With {.ThrowOnAnyError = True}
Dim client = New RestClient(restClientOptions)Présentation d'IronPDF
IronPDF est une bibliothèque PDF C# de Iron Software qui aide à lire et générer des documents PDF. Il peut convertir facilement des documents formatés avec des informations de style en PDF. IronPDF peut facilement générer des PDF à partir de contenu HTML; il peut télécharger le HTML depuis une URL, puis générer des PDF.
Une fonctionnalité clé de IronPDF est la conversion HTML en PDF, préservant toutes vos mises en page et styles. Il transforme le contenu web en PDF, le rendant idéal pour les rapports, les factures et la documentation. Les fichiers HTML, les URLs et les chaînes HTML peuvent être facilement convertis en PDFs.
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Create a PDF renderer using Chrome
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a PDF renderer using Chrome
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End ClassInstaller la bibliothèque IronPDF
Pour intégrer IronPDF dans votre projet Selenium RestSharp en utilisant le gestionnaire de packages NuGet, suivez ces étapes :
- Ouvrez Visual Studio, et dans l'explorateur de solutions, cliquez avec le bouton droit sur votre projet.
- Choisissez "Gérer les packages NuGet..." dans le menu contextuel.
- Accédez à l'onglet Parcourir et recherchez IronPDF.
- Sélectionnez la bibliothèque IronPDF dans les résultats de recherche et cliquez sur le bouton d'installation.
- Acceptez tout accord de licence s'il y en a.
Si vous souhaitez inclure IronPDF dans votre projet via la console du gestionnaire de packages, alors exécutez la commande suivante dans la console du gestionnaire de packages :
Cela récupérera et installera IronPDF dans votre projet.
Installer en utilisant le site NuGet
Pour une vue d'ensemble détaillée d'IronPDF, y compris ses fonctionnalités, compatibilités, et autres options de téléchargement, visitez la page IronPDF sur le site NuGet à https://www.nuget.org/packages/IronPdf.
Installer via DLL
Alternativement, vous pouvez intégrer directement IronPDF dans votre projet en utilisant son fichier DLL. Téléchargez le fichier ZIP contenant le DLL depuis IronPDF Downloads. Décompressez-le et incluez le DLL dans votre projet.
Nous allons maintenant obtenir tous les utilisateurs et générer un rapport PDF en utilisant une chaîne HTML et le générateur IronPDF.
using System.Text.Json;
using System.Text.Json.Serialization;
using RestSharp;
using IronPdf;
namespace rest_sharp_demo
{
class Program
{
static void Main()
{
// Create a RestClient
var baseUrl = "https://jsonplaceholder.typicode.com/users";
RestClientOptions options = new RestClientOptions(baseUrl) { UseDefaultCredentials = true };
var client = new RestClient(options);
// Create a RestRequest for the GET method
var request = new RestRequest();
// Execute the request and get the response
var response = client.Get(request);
// Check if the request was successful
if (response.IsSuccessful)
{
// Deserialize JSON response into a list of User objects
var users = JsonSerializer.Deserialize<List<User>>(response.Content);
// Generate PDF
var html = GetHtml(users);
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("UsersReport.pdf");
}
else
{
// Handle the error
Console.WriteLine($"Error: {response.ErrorMessage}");
}
}
// Method to generate HTML from user data
private static string GetHtml(List<User>? users)
{
string header = @"
<html>
<head><title>Users List</title></head>
<body>
";
var footer = @"
</body>
</html>";
var htmlContent = header;
foreach (var user in users)
{
htmlContent += $@"
<h1>{user.Name}</h1>
<p>Username: {user.Username}</p>
<p>Email: {user.Email}</p>
<p>Company: {user.Company}</p>
<p>Phone: {user.Phone}</p>
<p>Website: {user.Website}</p>
<p>Suite: {user.Address.Suite}</p>
<p>Street: {user.Address.Street}</p>
<p>City: {user.Address.City}</p>
<p>Zipcode: {user.Address.Zipcode}</p>
";
}
htmlContent += footer;
return htmlContent;
}
}
}Imports System.Text.Json
Imports System.Text.Json.Serialization
Imports RestSharp
Imports IronPdf
Namespace rest_sharp_demo
Class Program
Shared Sub Main()
' Create a RestClient
Dim baseUrl = "https://jsonplaceholder.typicode.com/users"
Dim options As New RestClientOptions(baseUrl) With {.UseDefaultCredentials = True}
Dim client As New RestClient(options)
' Create a RestRequest for the GET method
Dim request As New RestRequest()
' Execute the request and get the response
Dim response = client.Get(request)
' Check if the request was successful
If response.IsSuccessful Then
' Deserialize JSON response into a list of User objects
Dim users = JsonSerializer.Deserialize(Of List(Of User))(response.Content)
' Generate PDF
Dim html = GetHtml(users)
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("UsersReport.pdf")
Else
' Handle the error
Console.WriteLine($"Error: {response.ErrorMessage}")
End If
End Sub
' Method to generate HTML from user data
Private Shared Function GetHtml(users As List(Of User)) As String
Dim header As String = "
<html>
<head><title>Users List</title></head>
<body>
"
Dim footer As String = "
</body>
</html>"
Dim htmlContent As String = header
For Each user In users
htmlContent += $"
<h1>{user.Name}</h1>
<p>Username: {user.Username}</p>
<p>Email: {user.Email}</p>
<p>Company: {user.Company}</p>
<p>Phone: {user.Phone}</p>
<p>Website: {user.Website}</p>
<p>Suite: {user.Address.Suite}</p>
<p>Street: {user.Address.Street}</p>
<p>City: {user.Address.City}</p>
<p>Zipcode: {user.Address.Zipcode}</p>
"
Next
htmlContent += footer
Return htmlContent
End Function
End Class
End NamespaceL'ensemble du code peut être trouvé dans Git à ce lien.
Ici, nous générons d'abord une chaîne HTML à partir de la liste des utilisateurs avec tout le formatage requis pour les rapports. Ensuite, nous utilisons IronPDF pour générer un document PDF. Nous utilisons la méthode RenderHtmlAsPdf pour convertir la chaîne HTML en document PDF. Le document généré est le suivant :

Le document a un petit filigrane pour les licences d'essai, qui peut être supprimé avec une licence valide.
Licence (Essai Gratuit Disponible)
Pour que le code ci-dessus fonctionne, une clé de licence est requise. Cette clé doit être placée dans appsettings.json comme suit :
{
"IronPdf.LicenseKey": "your license key"
}
Une licence d'essai est disponible pour les développeurs après inscription, et aucune carte de crédit n'est requise pour une licence d'essai. On peut fournir son identifiant email et s'inscrire pour un essai gratuit.
Conclusion
La bibliothèque RestSharp simplifie le processus de travail avec les APIs RESTful en C#, fournissant une manière propre et efficace de faire des requêtes HTTP et de gérer les réponses. Que vous récupériez des données avec des requêtes GET ou que vous envoyiez des données avec des requêtes POST, l'API intuitive de RestSharp et ses fonctionnalités pratiques en font un outil précieux pour les développeurs créant des applications interagissant avec les services Web.
IronPDF offre une solution flexible et facile à utiliser pour générer des PDF. Pour plus d'informations sur les diverses fonctionnalités d'IronPDF, veuillez visiter la page de documentation d'IronPDF.
Les licences perpétuelles d'IronPDF vous aideront à améliorer vos compétences en programmation et à répondre aux exigences des applications modernes.
Connaître à la fois RestSharp et IronPDF apporte de grandes compétences, permettant aux développeurs de créer des applications modernes.

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.
Articles connexes


