跳過到頁腳內容
.NET幫助

RestSharp C#(開發者的工作原理)

RestSharp 是一個流行的開源 .NET 庫,用於在 C# 中做 HTTP 請求。 它簡化了與 RESTful APIs 一起工作的過程,提供了一種直接且靈活的方式與網絡服務通信。 In this article, we'll explore the crucial features of RestSharp and IronPDF and demonstrate how you can extract data and generate a PDF.

為什麼選擇 RestSharp?

在現代,多層應用程序中,不同的服務需要經常通信,RestSharp 提供了一種簡單高效的方法,通過封裝所有複雜性。 這大大簡化了軟體開發過程。

安裝 RestSharp

RestSharp 可以作為 NuGet 套件在 C# 項目中安裝。 您可以使用 NuGet 套件管理器控制台或 Visual Studio NuGet 套件管理器界面來完成此操作。

Install-Package RestSharp

發起簡單的 GET 請求

讓我們從一個簡單的例子開始,使用 RestSharp 向 RESTful API 發起 GET 請求。假設我們想從返回用戶數據的公開 ASP.NET core API 獲取信息:

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 還支持使用異步 API 方法進行異步請求和響應。

處理響應數據

RestSharp 提供了方便的方法將響應內容反序列化為 C# 對象。 讓我們擴展我們的示例,將 JSON 響應數據反序列化為用戶對象的列表:

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

在此示例中,我們定義了一個 User 類,其屬性對應於 JSON 字段。 我們使用了 System.Text.Json 命名空間的 JsonSerializer.Deserialize

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

輸出

所有用戶 ID 和姓名都顯示在輸出中。

RestSharp C# (它對開發者如何運作):圖 1 - 控制台輸出顯示所有用戶 ID 和姓名。

整個代碼可在 Git 上的 此鏈接 中找到。

內容類型

RestSharp 支持發送 XML 或 JSON 主體請求。 RestRequest 實例的 AddJsonBodyAddXmlBody 方法可以用於添加 JSON 或 XML 主體。 RestSharp 將自動設置內容類型。 它自動處理 JSON 或 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

用 POST 請求發送數據

RestSharp 還支持在創建或更新資源時將數據發送到請求體中。 讓我們修改示例以演示 POST 請求 API:

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

在此示例中,我們創建了一個新的 User 對象,將其序列化為 JSON,並使用 AddJsonBody 方法將其包括在請求體中。 服務器接收到 JSON 數據並相應地處理請求。

輸出

RestSharp C# (它對開發者如何運作):圖 2 - 控制台輸出

身份驗證

RestSharp 還支持發送帶有身份驗證的請求。 RestClientOptions 可以包含身份驗證參數。

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

在這裡,我們使用基本客戶端 ID 秘密身份驗證,該身份驗證在每次請求中發送。

錯誤處理

RestSharp 可以處理在 URL 請求期間發生的錯誤,例如超時、身份驗證或授權錯誤。 如果請求失敗,RestSharp 不會自動拋出異常。 需要手動配置。

可以進行以下錯誤處理配置:

  • FailOnDeserializationError:將此屬性設置為 true 將告知 RestSharp 將反序列化失敗視為錯誤,並相應地將 ResponseStatus 設置為 Error
  • ThrowOnDeserializationError:將此屬性設置為 true 將告知 RestSharp 在反序列化失敗時拋出異常。
  • ThrowOnAnyError:如果在請求或反序列化期間發生任何錯誤,則拋出異常。
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 的 C# PDF 庫,幫助讀取和生成 PDF 文檔。 它可以將容易格式化的文檔與樣式資訊輕鬆轉換為PDF。 IronPDF 可以輕鬆從 HTML 內容生成 PDF; 它可以從 URL 下載 HTML 然後生成 PDF。

IronPDF 的一個關鍵功能是 HTML 到 PDF 轉換,保留所有您的佈局和樣式。 它將網絡內容轉換為 PDF,使其成為報告、發票和文檔的理想選擇。 HTML 文件、網址和 HTML 字串可以輕鬆轉換為 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

安裝IronPDF庫

要使用 NuGet 套件管理器將 IronPDF 集成到您的 Selenium RestSharp 項目中,請按照以下步驟操作:

  1. 打開 Visual Studio,然後在方案資源管理器中右鍵單擊您的項目。
  2. 從上下文菜單中選擇“管理 NuGet 包...”
  3. 前往瀏覽選項卡,搜尋IronPDF。
  4. 在搜索結果中選擇 IronPDF 庫並單擊安裝按鈕。
  5. 接受任何許可協議提示。

如果您想通過套件管理器控制台將 IronPDF 包含在您的項目中,請在套件管理器控制台中執行以下命令:

Install-Package IronPdf

這會將 IronPDF 下載並安裝到您的項目中。

通過 NuGet 網站安裝

要獲取 IronPDF 的詳細概述,包括其功能、兼容性和其他下載選項,請造訪 NuGet 網站上的 IronPDF 頁面 https://www.nuget.org/packages/IronPdf

通過 DLL 安裝

或者,您可以直接將 IronPDF 集成到您的項目中使用其 DLL 文件。從 IronPDF 下載頁面 下載包含 DLL 的 ZIP 文件。 解壓它並將 DLL 包括在您的項目中。

現在我們將獲取所有用戶並使用 HTML 字串和 IronPDF 生成器生成一個 PDF 報告。

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

整個代碼可以在 Git 上的 此鏈接 中找到。

在這裡,我們首先從用戶列表中生成一個 HTML 字串,並包含報告所需的所有格式。 然後我們使用 IronPDF 來生成 PDF 文檔。 我們使用 RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF 文檔。 生成的文件如下所示:

RestSharp C# (它對開發者如何運作):圖 4 - 輸出 PDF

該文件對試用許可證有小型水印,可以使用有效許可證將其移除。

許可(可用免費試用)

要使上述代碼運行,需要一個許可證金鑰。 此鍵需放置在 appsettings.json 中,如下所示:

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

經過註冊後,可免費提供給開發者的一個 試用許可證 可用,試用許可證不需要信用卡。 可以提供電子郵件 ID 並註冊以獲得免費試用。

結論

RestSharp 庫簡化了在 C# 中與 RESTful APIs 一起工作的過程,提供了一種清晰且高效的方式來進行 HTTP 請求和處理響應。 無論您是使用 GET 請求獲取數據還是使用 POST 請求發送數據,RestSharp 的直觀 API 和便捷特性使其成為開發人員構建與網絡服務互動的應用程序的一個寶貴工具。

IronPDF 提供一種靈活且易於使用的生成 PDF 的解決方案。 如需有關 IronPDF 不同功能的更多信息,請訪問 IronPDF 文件頁面

IronPDF 的永久 許可證 將幫助您提高編程技能,實現現代應用程序需求。

了解 RestSharp 和 IronPDF 都能增加很大技能,使開發者能夠創建現代應用程序。

常見問題解答

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。

什麼是 C# 中的 RestSharp?

RestSharp 是一個受歡迎的開源 .NET 庫,用於在 C# 中發送 HTTP 請求。它通過提供一種簡單而靈活的方式與網絡服務進行通信,簡化了與 RESTful API 的互動。

如何在 C# 專案中安裝 RestSharp?

RestSharp 可以作為 NuGet 套件在您的 C# 專案中安裝。您可以使用 NuGet 套件管理器控制台以命令 Install-Package RestSharp 或通過 Visual Studio NuGet 套件管理器 UI 安裝它。

如何使用 C# 從 API 數據生成 PDF?

您可以使用 RestSharp 從 API 獲取數據,並使用 IronPDF 將該數據轉換為 PDF。首先,使用 RestSharp 獲取數據,然後將該數據格式化為 HTML,這可以使用 IronPDF 轉換為 PDF。

RestSharp 處理錯誤的最佳實踐是什麼?

RestSharp 提供錯誤處理機制,使您可以檢查響應狀態並處理異常。您可以檢查 ResponseStatusStatusCode 屬性,以確定請求是否成功或發生了錯誤。

如何在 RestSharp 響應中處理 JSON 數據?

RestSharp 可以輕鬆處理響應中的 JSON 數據。它提供方法,可以使用類似 System.Text.JsonNewtonsoft.Json 的庫將 JSON 內容反序列化為 C# 對象。

可以在 C# 中將 URL 轉換為 PDF 嗎?

是的,IronPDF 允許您使用 RenderUrlAsPdf 方法將網頁 URL 轉換為 PDF,該方法獲取 URL 的內容並將其轉換為 PDF 文檔。

如何使用 RestSharp 發送 POST 請求並附帶數據?

要使用 RestSharp 發送附帶數據的 POST 請求,請建立新對象,將其序列化為 JSON,然後使用 RestRequestAddJsonBody 方法將其包含在請求主體中。然後使用客戶端執行 POST 請求。

RestSharp 支援認證嗎?

是的,RestSharp 支援帶有身份驗證的請求。您可以在 RestClientOptions 中包含身份驗證參數,例如使用 HttpBasicAuthenticator 進行基本身份驗證。

如何將 PDF 生成集成到我的 C# 應用程序中?

您可以使用 IronPDF 將 PDF 生成集成到您的 C# 應用程序中。它允許您將 HTML 內容、URL 或 HTML 文件轉換為 PDF,這在應用程序中直接生成報告、文檔或發票時非常有用。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。