Przejdź do treści stopki
POMOC .NET

RestSharp C# (jak to działa dla programistów)

RestSharp is a popular open-source .NET library for making HTTP requests in C#. It simplifies the process of working with RESTful APIs, providing a straightforward and flexible way to communicate with web services. W tym artykule omówimy kluczowe funkcje RestSharp i IronPDF oraz pokażemy, jak można wyodrębnić dane i wygenerować plik PDF.

Dlaczego RestSharp?

W nowoczesnych aplikacjach wielowarstwowych różne usługi muszą bardzo często komunikować się ze sobą, a RestSharp oferuje prosty i wydajny sposób, hermetyzując wszystkie złożone procesy. To znacznie upraszcza proces tworzenia oprogramowania.

Zainstaluj RestSharp

RestSharp jest dostępny jako pakiet NuGet i można go zainstalować w projekcie C#. Można to zrobić za pomocą konsoli NuGet Package Manager Console lub interfejsu użytkownika Visual Studio NuGet Package Manager.

Install-Package RestSharp

Wysyłanie prostych żądań GET

Zacznijmy od prostego przykładu wysłania żądania GET do interfejsu API RESTful przy użyciu RestSharp. Załóżmy, że chcemy pobrać informacje z publicznego interfejsu API ASP.NET Core, który zwraca dane użytkownika:

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 obsługuje również żądania i odpowiedzi asynchroniczne przy użyciu metod API async.

Obsługa danych odpowiedzi

RestSharp zapewnia wygodne metody deseryalizacji treści odpowiedzi do obiektów C#. Rozszerzmy nasz przykład, aby zdeserializować dane odpowiedzi JSON do listy obiektów użytkownika:

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

In this example, we have defined a User class with properties corresponding to the JSON fields. We have used JsonSerializer.Deserialize from the System.Text.Json namespace.

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

Wynik

Wszystkie identyfikatory użytkowników i nazwy są wyświetlane w wynikach.

RestSharp C# (How It Works For Developer): Figure 1 - Console Output displaying all the User IDs and Names.

Cały kod jest dostępny w serwisie Git pod tym linkiem.

Typ treści

RestSharp obsługuje wysyłanie żądań z treścią w formacie XML lub JSON. The AddJsonBody or AddXmlBody methods of the RestRequest instance can be used to add JSON or XML body. RestSharp automatycznie ustawi typ zawartości. Obsługuje automatycznie odpowiedzi JSON lub 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

Wysyłanie danych za pomocą żądań POST

RestSharp obsługuje również wysyłanie danych w treści żądania, co jest powszechne podczas tworzenia lub aktualizowania zasobów. Zmodyfikujmy nasz przykład, aby zademonstrować API żądania 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

In this example, we create a new User object, serialize it to JSON, and include it in the request body using the AddJsonBody method. Serwer odbiera dane JSON i odpowiednio przetwarza żądanie.

Wynik

RestSharp C# (How It Works For Developer): Figure 2 - Console Output

Uwierzytelnianie

RestSharp obsługuje również wysyłanie żądań z uwierzytelnianiem. The RestClientOptions can include authentication parameters.

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

W tym przypadku stosujemy podstawowe uwierzytelnianie za pomocą tajnego identyfikatora klienta, który jest wysyłany w każdym żądaniu.

Obsługa błędów

RestSharp może obsługiwać błędy występujące podczas żądań URL, takie jak błędy przekroczenia limitu czasu, uwierzytelniania lub autoryzacji. RestSharp nie zgłasza wyjątku, jeśli żądanie zakończy się niepowodzeniem. Należy go skonfigurować ręcznie.

Można zastosować następujące konfiguracje obsługi błędów:

  • FailOnDeserializationError: Setting this property to true will tell RestSharp to consider failed deserialization as an error and set the ResponseStatus to Error accordingly.
  • ThrowOnDeserializationError: Ustawienie tej właściwości na true spowoduje, że RestSharp zgłosi błąd w przypadku niepowodzenia deseryalizacji.
  • ThrowOnAnyError: Wywołuje wyjątek, jeśli wystąpią jakiekolwiek błędy podczas wysyłania żądania lub podczas deseryalizacji.
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

Przedstawiamy IronPDF

IronPDF to biblioteka PDF w języku C# firmy Iron Software, która pomaga odczytywać i generować dokumenty PDF. It can convert easily formatted documents with style information to PDF. IronPDF może z łatwością generować pliki PDF na podstawie treści HTML; może pobrać kod HTML z adresu URL, a następnie wygenerować pliki PDF.

Kluczową funkcją IronPDF jest konwersja HTML do PDF z zachowaniem wszystkich układów i stylów. Przekształca treści internetowe w pliki PDF, dzięki czemu idealnie nadaje się do raportów, faktur i dokumentacji. Pliki HTML, adresy URL i ciągi znaków HTML można łatwo konwertować do formatu 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");
    }
}
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

Zainstaluj bibliotekę IronPDF

Aby zintegrować IronPDF z projektem Selenium RestSharp za pomocą menedżera pakietów NuGet, wykonaj następujące kroki:

  1. Otwórz program Visual Studio i w oknie Solution Explorer kliknij prawym przyciskiem myszy swój projekt.
  2. Wybierz "Zarządzaj pakietami NuGet..." z menu kontekstowego.
  3. Go to the Browse tab and search for IronPDF.
  4. Wybierz bibliotekę IronPDF z wyników wyszukiwania i kliknij przycisk instalacji.
  5. Zaakceptuj wszelkie monity dotyczące Umowy licencyjnej.

Jeśli chcesz dołączyć IronPDF do swojego projektu za pomocą konsoli menedżera pakietów, wykonaj następujące polecenie w konsoli menedżera pakietów:

Install-Package IronPdf

Pobierze i zainstaluje IronPDF w Twoim projekcie.

Instalacja za pomocą NuGet Strona internetowa

For a detailed overview of IronPDF, including its features, compatibility, and additional download options, visit the IronPDF page on the NuGet website at https://www.nuget.org/packages/IronPdf.

Instalacja za pomocą biblioteki DLL

Alternatywnie można włączyć IronPDF bezpośrednio do swojego projektu, korzystając z pliku DLL. Pobierz plik ZIP zawierający bibliotekę DLL z sekcji Pobieranie IronPDF. Rozpakuj plik i dołącz bibliotekę DLL do swojego projektu.

Teraz pobierzemy wszystkich użytkowników i wygenerujemy raport PDF przy użyciu ciągu HTML oraz generatora 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

Cały kod można znaleźć w serwisie Git pod tym linkiem.

W tym miejscu najpierw generujemy ciąg HTML z listy użytkowników, zawierający całe formatowanie wymagane dla raportów. Następnie używamy IronPDF do wygenerowania dokumentu PDF. We use the RenderHtmlAsPdf method to convert the HTML string to a PDF document. Wygenerowany dokument wygląda następująco:

RestSharp C# (How It Works For Developer): Figure 4 - Output PDF

Dokument zawiera niewielki znak wodny dotyczący licencji Trial, który można usunąć za pomocą ważnej licencji.

Licencjonowanie (dostępna bezpłatna wersja próbna)

For the above code to work, a license key is required. This key needs to be placed in appsettings.json as follows:

{
    "IronPdf.LicenseKey": "your license key"
}

Po rejestracji programiści mogą uzyskać Licencję Trial, która nie wymaga podania danych karty kredytowej. Można podać swój adres e-mail i zarejestrować się, aby skorzystać z bezpłatnej wersji próbnej.

Wnioski

Biblioteka RestSharp upraszcza proces pracy z interfejsami API RESTful w języku C#, zapewniając przejrzysty i wydajny sposób wysyłania żądań HTTP oraz obsługi odpowiedzi. Niezależnie od tego, czy pobierasz dane za pomocą żądań GET, czy wysyłasz dane za pomocą żądań POST, intuicyjny interfejs API i wygodne funkcje RestSharp sprawiają, że jest to cenne narzędzie dla programistów tworzących aplikacje współpracujące z usługami internetowymi.

IronPDF zapewnia elastyczne i łatwe w użyciu rozwiązanie do generowania plików PDF. Aby uzyskać dodatkowe informacje na temat różnych funkcji IronPDF, odwiedź stronę dokumentacji IronPDF.

Licencje wieczyste IronPDF pomogą Ci poprawić umiejętności kodowania i spełnić wymagania nowoczesnych aplikacji.

Znajomość zarówno RestSharp, jak i IronPDF stanowi ogromny atut, umożliwiający programistom tworzenie nowoczesnych aplikacji.

Często Zadawane Pytania

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Czym jest RestSharp w języku C#?

RestSharp to popularna biblioteka .NET typu open source służąca do wysyłania żądań HTTP w języku C#. Ułatwia pracę z interfejsami API RESTful, zapewniając prosty i elastyczny sposób komunikacji z usługami internetowymi.

Jak zainstalować RestSharp w projekcie C#?

RestSharp można zainstalować jako pakiet NuGet w projekcie C#. Można to zrobić za pomocą konsoli NuGet Package Manager Console, używając polecenia Install-Package RestSharp, lub poprzez interfejs użytkownika Visual Studio NuGet Package Manager.

Jak mogę generować pliki PDF z danych API przy użyciu języka C#?

Możesz użyć RestSharp do pobrania danych z API, a IronPDF do konwersji tych danych do formatu PDF. Najpierw pobierz dane za pomocą RestSharp, a następnie sformatuj je do postaci HTML, którą można przekonwertować do formatu PDF za pomocą IronPDF.

Jakie są najlepsze praktyki dotyczące obsługi błędów w RestSharp?

RestSharp zapewnia mechanizmy obsługi błędów, umożliwiając sprawdzanie statusu odpowiedzi i obsługę wyjątków. Można sprawdzić właściwości ResponseStatus i StatusCode, aby określić, czy żądanie zakończyło się powodzeniem, czy też wystąpił błąd.

Jak mogę obsługiwać dane JSON w odpowiedziach RestSharp?

RestSharp z łatwością obsługuje dane JSON w odpowiedziach. Zapewnia metody deseryalizacji treści JSON do obiektów C# przy użyciu bibliotek takich jak System.Text.Json lub Newtonsoft.Json.

Czy można konwertować adresy URL na pliki PDF w języku C#?

Tak, IronPDF umożliwia konwersję adresów URL stron internetowych do formatu PDF za pomocą metody RenderUrlAsPdf, która pobiera zawartość adresu URL i konwertuje ją na dokument PDF.

Jak wysłać dane za pomocą żądania POST przy użyciu RestSharp?

Aby wysłać dane za pomocą żądania POST przy użyciu RestSharp, należy utworzyć nowy obiekt, zserializować go do formatu JSON i dołączyć do treści żądania za pomocą metody AddJsonBody klasy RestRequest. Następnie należy wykonać żądanie POST za pomocą klienta.

Czy RestSharp obsługuje uwierzytelnianie?

Tak, RestSharp obsługuje wysyłanie żądań z uwierzytelnianiem. W RestClientOptions można uwzględnić parametry uwierzytelniania, np. używając HttpBasicAuthenticator do uwierzytelniania podstawowego.

Jak mogę zintegrować generowanie plików PDF z moją aplikacją C#?

Za pomocą IronPDF można zintegrować generowanie plików PDF z aplikacją C#. Pozwala to na konwersję treści HTML, adresów URL lub plików HTML do formatu PDF, co jest przydatne do generowania raportów, dokumentacji lub faktur bezpośrednio w aplikacji.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie