IRONSOFTWAREHOME
開發者更新

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

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年7月19日

RestSharp 是一個流行的開源 .NET 程式庫,用於在 C# 中進行 HTTP 請求。 它簡化了使用 RESTful API 的過程,提供了與網路服務通信的直接且靈活的方法。 在本文中,我們將探討 RestSharp 和 IronPDF 的關鍵特性,並展示如何提取資料和生成 PDF。

為什麼選擇 RestSharp?

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

安裝 RestSharp

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

PM > 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);
        }
    }
}

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}");
}

在這個範例中,我們定義了一個 User 類,其中的屬性對應於 JSON 字段。 我們使用了 JsonSerializer.Deserialize 來自 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; }
}

輸出

所有使用者 ID 和名在輸出中顯示。

RestSharp C# (How It Works For Developer):圖 1 - 控制台輸出顯示所有使用者 ID 和名稱。

完整程式碼可在 Git 上的 此連結 中找到。

內容型別

RestSharp 支持發送 XML 或 JSON 主體請求。 可以使用 AddJsonBody 或 AddXmlBody 的 RestRequest 實例來新增 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);

使用 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}");
            }
        }
    }
}

在這個範例中,我們建立了一個新的 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)
};

在這裡我們使用基本的客戶端 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);

介紹 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");
    }
}

安裝 IronPDF 程式庫

要使用 NuGet 套件管理器將 IronPDF 整合到您的 Selenium RestSharp 專案中,請按照以下步驟進行:

  1. 開啟 Visual Studio,在方案總管中右鍵點擊您的專案。
  2. 從上下文選單中選擇"管理 NuGet 套件..."。
  3. 進入"瀏覽"標籤並搜尋 IronPDF。
  4. 從搜索結果中選擇 IronPDF 程式庫,然後點擊安裝按鈕。
  5. 接受任何授權協議提示。

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

PM > Install-Package IronPdf

它會獲取並將 IronPDF 安裝到您的專案中。

使用 NuGet 網站安裝

想詳細了解 IronPDF,包括其功能、相容性和其他下載選項,請存取 NuGet 網站上的 IronPDF 頁面,網址為 https://www.nuget.org/packages/IronPdf。

通過 DLL 安裝

或者,您可以使用其 DLL 文件將 IronPDF 直接整合到您的專案中。從 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;
        }
    }
}

完整程式碼可在 Git 上的 此連結 中找到。

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

RestSharp C# (How It Works For Developer):圖 4 - 輸出 PDF

該文件對於試用授權帶有小水印,可以使用有效的授權刪除。

授權(提供免費試用)

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

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

開發者可以註冊獲取試用授權,試用授權不需要信用卡。 可以提供電子郵件 ID 並註冊獲取免費試用。

結論

RestSharp 程式庫簡化了在 C# 中使用 RESTful API 的過程,提供了一個乾淨且高效的方法來進行 HTTP 請求和處理響應。 無論您是使用 GET 請求檢索資料還是使用 POST 請求發送資料,RestSharp 的直觀 API 和方便的功能使其成為構建與網路服務互動的應用程式的開發者的重要工具。

IronPDF 提供了一個靈活且易於使用的生成 PDF 的解決方案。 欲瞭解更多有關 IronPDF 各種功能的資訊,請存取IronPDF 文件頁面。

IronPDF 的永久授權將幫助您提高編碼技能並實現現代應用需求。

擁有 RestSharp 和 IronPDF 的知識增加了很大的技能,使開發者能夠建立現代應用程式。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起