.NET 帮助 RestSharp C#(开发者用法) Jacob Mellor 已更新:2026年1月18日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 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 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); } } } $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 正文请求。 可以使用AddXmlBody方法来添加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 文件、网址和 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 请求。它通过提供一种简单而灵活的方式来与 Web 服务通信,从而简化了对 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# 对象。 可以将 URL 转换为 C# 中的 PDF 吗? 是的,IronPDF 允许您通过 RenderUrlAsPdf 方法将 Web URL 转换为 PDF,该方法获取 URL 的内容并将其转换为 PDF 文档。 如何使用 RestSharp 发送 POST 请求数据? 要使用 RestSharp 发送带有 POST 请求的数据,请创建一个新对象,将其序列化为 JSON,并使用 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 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 相关文章 已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多 已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新2025年12月20日 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 如何在 .NET 合并 PDF 文件测试控制台应用程序 C#(...
已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多
已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多