.NET幫助 RestSharp C#(開發者的工作原理) Jacob Mellor 更新:2026年1月18日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 RestSharp 是一個流行的開源 .NET 程式庫,用於在 C# 中製作 HTTP 請求。 它簡化了使用 RESTful API 的過程,提供了一種直接而靈活的方式與網路服務通訊。 在這篇文章中,我們將探討 RestSharp 和 IronPDF 的關鍵功能,並示範如何提取數據並生成 PDF。 為什麼選擇RestSharp? 在現代的多層級應用程式中,不同的服務需要頻繁通訊,RestSharp 提供了一種簡單且高效的方式來封裝所有的複雜性。 這大大簡化了軟體開發的過程。 安裝RestSharp RestSharp 可以作為 NuGet 套件使用,並可以安裝到您的 C# 專案中。 您可以使用NuGet套件管理器控制台或Visual Studio NuGet套件管理器UI來進行此操作。 Install-Package RestSharp 進行簡單的GET請求 讓我們從一個簡單的例子開始,使用RestSharp對RESTful API進行GET請求。假設我們想從一個返回使用者資料的公用 ASP.NET CoreAPI 中檢索資訊: 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); } } } $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}"); } $vbLabelText $csharpLabel 在此示例中,我們定義了一個User類,其中具有與 JSON 欄位對應的屬性。 我們使用了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; } } $vbLabelText $csharpLabel 輸出 所有使用者的 ID 和姓名都顯示在輸出中。 完整的代碼可在Git上此連結中找到。 內容類型 RestSharp 支援發送XML或JSON的請求體。 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); // 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); $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}"); } } } } $vbLabelText $csharpLabel 在此示例中,我們創建了一個新的AddJsonBody方法將其包含在請求體中。 伺服器接收JSON數據並相應地處理請求。 輸出 身份驗證 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) }; $vbLabelText $csharpLabel 此處我們使用基本客戶端 ID 和密鑰身份驗證,此身份驗證會在每個請求中發送。 錯誤處理 RestSharp 可以處理URL請求期間發生的錯誤,如超時、身份驗證或授權錯誤。 RestSharp 不會自動丟擲例外,如果請求失敗。 它需要手動配置。 可以採取以下錯誤處理配置: FailOnDeserializationError: 將此屬性設置為true,會告訴RestSharp將反序列化失敗視為錯誤,並相應地設置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); $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"); } } $vbLabelText $csharpLabel 安裝IronPDF程式庫 要使用NuGet套件管理器將IronPDF整合到您的Selenium RestSharp專案中,請按以下步驟進行: 打開 Visual Studio,然後在方案資源管理器中右鍵單擊您的專案。 從上下文菜單中選擇"管理 NuGet 套件..."。 前往"瀏覽"選項卡,然後搜尋 IronPDF。 從搜尋結果中選擇 IronPDF 程式庫並單擊安裝按鈕。 接受任何授權協議提示。 如果您想通過套件管理器控制台包括 IronPDF 到專案中,那麼在套件管理控制台中執行以下命令: 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; } } } 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; } } } $vbLabelText $csharpLabel 完整的代碼可在Git上此連結中找到。 這裡我們首先從使用者列表中生成一個HTML字符串,其中包含報告所需的所有格式化。 然後我們使用 IronPDF 生成 PDF 文件。 我們使用 RenderHtmlAsPdf 方法將HTML字符串轉換為PDF文件。 生成的文件如下所示: 文件中含有小型浮水印,適用於試用授權,可以通過有效的授權來移除。 授權(提供免費試用) 要使上述代碼正常工作,需要授權金鑰。 此金鑰需要放置在appsettings.json中,如下所示: { "IronPdf.LicenseKey": "your license key" } 試用授權供已註冊的開發者使用,試用授權不需要信用卡。 一個人可以提供他們的電子郵件ID並註冊免費試用。 結論 RestSharp 程式庫簡化了在 C# 中使用 RESTful API 的過程,提供了一種乾淨且高效的方式進行 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 提供錯誤處理機制,使您可以檢查響應狀態並處理異常。您可以檢查 ResponseStatus 和 StatusCode 屬性,以確定請求是否成功或發生了錯誤。 如何在 RestSharp 響應中處理 JSON 數據? RestSharp 可以輕鬆處理響應中的 JSON 數據。它提供方法,可以使用類似 System.Text.Json 或 Newtonsoft.Json 的庫將 JSON 內容反序列化為 C# 對象。 可以在 C# 中將 URL 轉換為 PDF 嗎? 是的,IronPDF 允許您使用 RenderUrlAsPdf 方法將網頁 URL 轉換為 PDF,該方法獲取 URL 的內容並將其轉換為 PDF 文檔。 如何使用 RestSharp 發送 POST 請求並附帶數據? 要使用 RestSharp 發送附帶數據的 POST 請求,請建立新對象,將其序列化為 JSON,然後使用 RestRequest 的 AddJsonBody 方法將其包含在請求主體中。然後使用客戶端執行 POST 請求。 RestSharp 支援認證嗎? 是的,RestSharp 支援帶有身份驗證的請求。您可以在 RestClientOptions 中包含身份驗證參數,例如使用 HttpBasicAuthenticator 進行基本身份驗證。 如何將 PDF 生成集成到我的 C# 應用程序中? 您可以使用 IronPDF 將 PDF 生成集成到您的 C# 應用程序中。它允許您將 HTML 內容、URL 或 HTML 文件轉換為 PDF,這在應用程序中直接生成報告、文檔或發票時非常有用。 Jacob Mellor 立即與工程團隊聊天 首席技術官 Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新2025年12月20日 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新2025年12月20日 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 如何在 .NET 中合併 PDF 檔案Test Console Application C#(開...
更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多