푸터 콘텐츠로 바로가기
.NET 도움말

RestSharp C# (개발자를 위한 작동 원리)

RestSharp는 C#에서 HTTP 요청을 수행하기 위한 인기 있는 오픈소스 .NET 라이브러리입니다. RESTful API 작업을 단순하게 만들어, 웹 서비스와의 통신을 위한 직관적이고 유연한 방법을 제공합니다. 이 글에서는 RestSharpIronPDF의 중요한 기능을 탐색하고 데이터를 추출하여 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);
        }
    }
}
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는 비동기 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

이 예제에서는 JSON 필드에 해당하는 속성을 가진 User 클래스를 정의했습니다. 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# (개발자를 위한 작동 방식): 그림 1 - 모든 사용자 ID 및 이름을 표시하는 콘솔 출력.

전체 코드는 Git 이 링크에서 확인할 수 있습니다.

콘텐츠 유형

RestSharp는 XML 또는 JSON 본문 요청을 지원합니다. RestRequest 인스턴스의 AddJsonBody 또는 AddXmlBody 메소드를 사용하여 JSON 또는 XML 본문을 추가할 수 있습니다. RestSharp는 콘텐츠 유형을 자동으로 설정합니다. 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# (개발자를 위한 작동 방식): 그림 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이 실패한 역직렬화를 오류로 간주하고 ResponseStatusError으로 설정합니다.
  • 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 소개

IronPDFIron 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 라이브러리 설치

NuGet 패키지 관리자를 사용하여 IronPDF를 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 다운로드에서 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 문서를 생성합니다. HTML 문자열을 PDF 문서로 변환하기 위해 RenderHtmlAsPdf 메소드를 사용합니다. 생성된 문서는 아래와 같습니다:

RestSharp C# (개발자를 위한 작동 방식): 그림 4 - 출력 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은 C#에서 HTTP 요청을 하도록 널리 사용되는 오픈 소스 .NET 라이브러리입니다. 웹 서비스와의 통신을 쉽고 유연하게 하여 RESTful APIs 작업을 간소화합니다.

C# 프로젝트에서 RestSharp을 어떻게 설치하나요?

RestSharp은 C# 프로젝트에서 NuGet 패키지로 설치할 수 있습니다. NuGet 패키지 관리자 콘솔에서 Install-Package RestSharp 명령어를 사용하거나 Visual Studio NuGet 패키지 관리자 UI를 통해 설치할 수 있습니다.

C#을 사용하여 API 데이터로부터 PDF를 어떻게 생성할 수 있을까요?

API로부터 데이터를 가져오기 위해 RestSharp을 사용하고 IronPDF를 통해 그 데이터를 PDF로 변환할 수 있습니다. 먼저 RestSharp을 사용하여 데이터를 가져오고, 그런 다음 HTML로 데이터를 포맷하여 IronPDF로 PDF로 변환할 수 있습니다.

RestSharp에서 에러 핸들링에 대한 모범 사례는 무엇인가요?

RestSharp은 응답 상태를 확인하고 예외를 처리할 수 있는 메커니즘을 제공합니다. ResponseStatusStatusCode 속성을 검사하여 요청이 성공했는지 오류가 발생했는지 판단할 수 있습니다.

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으로 직렬화하여 RestRequestAddJsonBody 메서드를 통해 요청 본문에 포함시킵니다. 그런 다음 클라이언트를 사용하여 POST 요청을 실행합니다.

RestSharp은 인증을 지원하나요?

네, RestSharp은 인증을 지원하여 요청을 보낼 수 있습니다. RestClientOptions에 인증 매개변수를 포함시킬 수 있으며, 기본 인증을 위해 HttpBasicAuthenticator를 사용할 수 있습니다.

C# 애플리케이션에 PDF 생성을 어떻게 통합할 수 있나요?

IronPDF를 사용하여 C# 애플리케이션에 PDF 생성을 통합할 수 있습니다. 이 라이브러리는 HTML 콘텐츠, URL 또는 HTML 파일을 PDF로 변환할 수 있어 보고서, 문서 또는 청구서를 애플리케이션 내에서 직접 생성하는 데 유용합니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다.

그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해