Passer au contenu du pied de page
.NET AIDE

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. In this article, we'll explore the crucial features of RestSharp and IronPDF and demonstrate how you can extract data and generate a 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.

Install-Package RestSharp

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);
        }
    }
}
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
	Friend 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(ByVal msg As String)
			Console.WriteLine(msg)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

RestSharp 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
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 user
$vbLabelText   $csharpLabel

Dans cet exemple, nous avons défini une classe User avec des propriétés correspondant aux champs JSON. Nous avons utilisé JsonSerializer.Deserialize de 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 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 Class
$vbLabelText   $csharpLabel

Sortie

Tous les ID et noms d'utilisateurs sont affichés dans la sortie.

RestSharp C# (Comment ça fonctionne pour le développeur) : Figure 1 - Sortie Console affichant tous les ID et Noms d'utilisateurs.

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
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)
$vbLabelText   $csharpLabel

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}");
            }
        }
    }
}
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
	Friend 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 Namespace
$vbLabelText   $csharpLabel

Dans 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

RestSharp C# (Comment ça fonctionne pour le développeur) : Figure 2 - Sortie Console

Authentification

RestSharp prend également en charge l'envoi de requêtes avec authentification. Les RestClientOptions peuvent inclure des paramètres d'authentification.

var options = new RestClientOptions("https://auth.net")
{
    Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret)
};
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)}
$vbLabelText   $csharpLabel

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 une désérialisation échouée comme une erreur et de définir le ResponseStatus à Error en conséquence.
  • ThrowOnDeserializationError : Définir cette propriété sur true indiquera à RestSharp de lancer une exception lorsque la désérialisation échoue.
  • ThrowOnAnyError : Lance une exception si des erreurs surviennent lors de la réalisation d'une requête ou au cours de la désérialisation.
var restClientOptions = new RestClientOptions(url)
{
    ThrowOnAnyError = true
};
var client = new RestClient(restClientOptions);
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)
$vbLabelText   $csharpLabel

Introducing IronPDF

IronPDF is a C# PDF library from 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");
    }
}
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 Class
$vbLabelText   $csharpLabel

Installer la bibliothèque IronPDF

Pour intégrer IronPDF dans votre projet Selenium RestSharp en utilisant le gestionnaire de packages NuGet, suivez ces étapes :

  1. Ouvrez Visual Studio, et dans l'explorateur de solutions, cliquez avec le bouton droit sur votre projet.
  2. Choisissez "Gérer les packages NuGet..." dans le menu contextuel.
  3. Accédez à l'onglet Parcourir et recherchez IronPDF.
  4. Sélectionnez la bibliothèque IronPDF dans les résultats de recherche et cliquez sur le bouton d'installation.
  5. 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 :

Install-Package IronPdf

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;
        }
    }
}
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
	Friend 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 = 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
				' 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
'INSTANT VB WARNING: Nullable reference types have no equivalent in VB:
'ORIGINAL LINE: private static string GetHtml(List<User>? users)
		Private Shared Function GetHtml(ByVal users As List(Of User)) As String
			Dim header As String = "
<html>
<head><title>Users List</title></head>
<body>
"
			Dim footer = "
</body>
</html>"
			Dim htmlContent = 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 user
			htmlContent &= footer
			Return htmlContent
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

L'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 un document PDF. Le document généré est le suivant :

RestSharp C# (Comment ça fonctionne pour le développeur) : Figure 4 - Sortie PDF

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.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf d'IronPDF pour convertir des chaînes HTML en PDFs. Vous pouvez également convertir des fichiers HTML en PDFs en utilisant RenderHtmlFileAsPdf.

Qu'est-ce que RestSharp en C# ?

RestSharp est une bibliothèque .NET open-source populaire pour effectuer des requêtes HTTP en C#. Elle simplifie le travail avec les API RESTful en fournissant un moyen simple et flexible de communiquer avec les services web.

Comment puis-je installer RestSharp dans un projet C# ?

RestSharp peut être installé comme un package NuGet dans votre projet C#. Vous pouvez le faire en utilisant la console du gestionnaire de packages NuGet avec la commande Install-Package RestSharp ou via l'interface utilisateur du gestionnaire de packages NuGet de Visual Studio.

Comment puis-je générer des PDF à partir de données API en utilisant C# ?

Vous pouvez utiliser RestSharp pour récupérer des données d'une API et IronPDF pour convertir ces données en PDF. Tout d'abord, récupérez les données en utilisant RestSharp, puis formatez les données en HTML, qui peut être converti en PDF en utilisant IronPDF.

Quelles sont les meilleures pratiques pour la gestion des erreurs dans RestSharp ?

RestSharp offre des mécanismes pour la gestion des erreurs en vous permettant de vérifier le statut de la réponse et de gérer les exceptions. Vous pouvez inspecter les propriétés ResponseStatus et StatusCode pour déterminer si la requête a réussi ou si une erreur s'est produite.

Comment puis-je gérer les données JSON dans les réponses RestSharp ?

RestSharp peut facilement gérer les données JSON dans les réponses. Il offre des méthodes pour désérialiser le contenu JSON en objets C# en utilisant des bibliothèques comme System.Text.Json ou Newtonsoft.Json.

Pouvez-vous convertir des URL en PDF en C# ?

Oui, IronPDF vous permet de convertir des URL web en PDF en utilisant la méthode RenderUrlAsPdf, qui récupère le contenu de l'URL et le convertit en un document PDF.

Comment puis-je envoyer des données avec une requête POST en utilisant RestSharp ?

Pour envoyer des données avec une requête POST en utilisant RestSharp, créez un nouvel objet, sérialisez-le en JSON et incluez-le dans le corps de la requête en utilisant la méthode AddJsonBody du RestRequest. Vous exécutez ensuite la requête POST avec le client.

RestSharp prend-il en charge l'authentification ?

Oui, RestSharp prend en charge l'envoi de requêtes avec authentification. Vous pouvez inclure des paramètres d'authentification dans les RestClientOptions, comme utiliser HttpBasicAuthenticator pour l'authentification de base.

Comment puis-je intégrer la génération de PDF dans mon application C# ?

Vous pouvez intégrer la génération de PDF dans votre application C# en utilisant IronPDF. Il vous permet de convertir du contenu HTML, des URL ou des fichiers HTML en PDF, ce qui est utile pour générer des rapports, des documentations ou des factures directement au sein d'une application.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite