跳過到頁腳內容
.NET幫助

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

RestSharp 是一個流行的開放原始碼 .NET 函式庫,用於在 C# 中提出 HTTP 請求。 它簡化了使用 RESTful API 的流程,提供了一種直接且靈活的方式來與 Web 服務進行通訊。 在本文中,我們將探討 RestSharpIronPDF 的關鍵功能,並示範如何擷取資料並產生 PDF。

為何選擇 RestSharp?

在現代的多層應用程式中,不同的服務需要經常彼此溝通,而 RestSharp 透過封裝所有的複雜性,提供了一種簡單有效的方式。 這將大大簡化軟體開發流程。

安裝 RestSharp

RestSharp 以 NuGet 套件的形式提供,可安裝在您的 C# 專案中。 您可以使用 NuGet Package Manager Console 或 Visual Studio NuGet Package Manager UI 來完成此工作。

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 也支援使用 async 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# (How It Works For Developer):圖 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# (How It Works For Developer):圖 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

介紹 IronPDF。

IronPDF 是來自 Iron Software 的 C# PDF 函式庫,可協助讀取和產生 PDF 文件。 它可以將格式簡單、包含樣式資訊的文件轉換成 PDF。 IronPDF 可以輕鬆地從 HTML 內容產生 PDF; 它可以從 URL 下載 HTML,然後產生 PDF。

IronPdf 的一個主要功能是 HTML 轉換為 PDF,保留您所有的版面設計和樣式。 它可將網頁內容轉換成 PDF,非常適合報告、發票和文件。 HTML 檔案、URL 和 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 Library

若要使用 NuGet Package Manager 將 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 納入您的專案中。從 IronPDF Downloads 下載包含 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# (How It Works For Developer):圖 4 - 輸出 PDF

本文件有一個試用授權的小水印,可使用有效的授權移除。

授權(可免費試用)

為了讓上述程式碼能正常運作,需要授權金鑰。 此金鑰需要如下放置於 appsettings.json 中:

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

開發人員註冊後即可獲得 試用授權,試用授權不需要信用卡。 您可以提供電子郵件 ID 並註冊免費試用。

結論

RestSharp 函式庫簡化了在 C# 中使用 RESTful API 的流程,提供簡潔有效的方式來提出 HTTP 請求並處理回應。 無論您是使用 GET 請求擷取資料,或是使用 POST 請求傳送資料,RestSharp 直觀的 API 和便利的功能都使其成為開發人員建立與 Web 服務互動應用程式的重要工具。

IronPDF提供了靈活易用的 PDF 生成解決方案。 如需 IronPdf 各項功能的其他資訊,請造訪 IronPDF 文件頁面

IronPdf 的永久許可將幫助您提高編碼技能,實現現代化應用需求。

同時瞭解 RestSharp 和 IronPDF 會增加很好的技能,使開發人員能夠建立現代化的應用程式。

常見問題解答

如何在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。

什麼是 C# RestSharp?

RestSharp 是一種流行的開放原始碼 .NET 函式庫,用於在 C# 中提出 HTTP 請求。它提供了一種簡單靈活的方式來與 Web 服務進行通訊,從而簡化了 RESTful API 的工作。

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

RestSharp 可以作為 NuGet 包安裝在您的 C# 專案中。您可以使用NuGet包管理器控制台的Install-Package RestSharp命令或者通过Visual Studio NuGet包管理器用户界面来完成。

如何使用 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 方法將 Web URL 轉換為 PDF,該方法會擷取 URL 的內容並將其轉換為 PDF 文件。

如何使用 RestSharp 以 POST 請求傳送資料?

要使用 RestSharp 以 POST 請求傳送資料,請建立一個新物件,將其序列化為 JSON,並使用 RestRequestAddJsonBody 方法將其包含在請求體中。之後,您就可以使用用戶端執行 POST 請求。

RestSharp 支援驗證嗎?

是的,RestSharp 支持发送带有身份验证的请求。您可以在 RestClientOptions 中包含認證參數,例如使用 HttpBasicAuthenticator 來進行基本認證。

如何將 PDF 生成整合到我的 C# 應用程式中?

您可以使用 IronPDF 將 PDF 生成整合到您的 C# 應用程式中。它允許您將 HTML 內容、URL 或 HTML 檔案轉換為 PDF,因此對於直接在應用程式中產生報告、文件或發票非常有用。

Jacob Mellor, Team Iron 首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。

Jacob 持有曼徹斯特大學土木工程一級榮譽学士工程學位(BEng) (1998-2001)。他於 1999 年在倫敦開設了他的第一家軟件公司,並於 2005 年製作了他的首個 .NET 組件,專注於解決 Microsoft 生態系統內的複雜問題。

他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。