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字段。 我们使用了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#(开发人员如何工作):图1 - 控制台输出显示所有用户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);

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

在这个例子中,我们创建一个新的AddJsonBody方法将其包含在请求正文中。 服务器接收 JSON 数据并相应处理请求。

输出

RestSharp C#(开发人员如何工作):图2 - 控制台输出

认证

RestSharp 还支持发送带有认证的请求。 RestClientOptions可以包含认证参数。

var options = new RestClientOptions("https://auth.net")
{
    Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret)
};

这里我们使用基本的客户端 ID 密钥认证,每次请求都会发送。

错误处理

RestSharp 可以处理在 URL 请求期间发生的错误,例如超时、身份验证或授权错误。 如果请求失败,RestSharp 不会自动抛出异常。 需要手动进行配置。

可以进行以下错误处理配置:

  • FailOnDeserializationError: 将此属性设置为true会告诉RestSharp将反序列化失败视为错误,并相应地设置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 文件、网址和 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#(开发人员如何工作):图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 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

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 起