在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
通過在 C# 中將Refit與IronPDF整合,結合兩個強大庫的最佳功能,以生產出極具效率的應用程式。 Refit 通過允許開發者設計具有 C# 特徵的 API 介面,自動生成HTTP 請求,並保證類型安全的 API 存取,使使用 RESTful APIs 更加簡便。 相反地,IronPDF 提供多種強大的功能來處理 PDF 檔案,包括合併和註釋 PDF,以及轉換 HTML 內容。 這些庫在結合使用時為數據呈現和檢索提供了流暢的工作流程。 透過使用像 Refit 這樣的工具從 API 獲取數據,以及使用 IronPDF 根據這些數據生成詳細且優秀的 PDF 報告,可以使數據驅動的應用程式開發變得更加高效和富有成效。
Refit 是一個開源的 .NET 框架,使用聲明式、型別安全的方法來簡化向 RESTful API 發送 HTTP 請求的過程。Refit 自動生成所需的 HTTP 客戶端代碼,通過指定作為 C# 介面的 API 端點並附加特性。 這大大減少了樣板代碼並改善了代碼的可讀性。 透過在編譯而非執行期間偵測錯誤,此技術可確保方法簽名正確匹配 API 端點。
此外,Refit 輕鬆處理 JSON 序列化和反序列化,使開發人員能夠與 C# 對象交互,而不必手動轉換 API 回覆。 通過直接在介面規範中定義 HTTP 方法、標頭和參數,屬性使配置變得更簡單。 由於在更新 API 端點時客戶端的代碼需要修改得較少,代碼因此變得更簡單且更易於維護。
例如,Refit 可以透過在介面中使用 [Get("/users/{id}")] 特性創建方法,來生成所需的 HTTP GET 請求字串的用戶名。 這個請求可以通過類型安全的方法呼叫來完成。 Refit 是一個全面更高效的解決方案,可以讓開發人員通過抽象化管理 HTTP 客戶端所帶來的麻煩,將 API 集成到 .NET 應用程式中。
Refit 在編譯時偵測錯誤,確保方法簽名與 API 端點匹配。 這種類型安全性減少了由於不匹配的端點或不正確的請求設置引起的運行時錯誤的可能性。
開發人員可以使用 C# 介面和屬性來構建 API 端點,這樣可以產生更簡潔、更易於維護的 HTTP 請求代碼。 這種宣告式方法將每個用戶端實現 HTTP 請求方法的複雜性抽象化。
Refit 自動處理 C# 對象到 JSON 數據的轉換。 由於開發者不再需要手動序列化請求主體或反序列化響應,數據處理變得更加簡單。
屬性用於定義 HTTP 方法(如 GET、POST、PUT 和 DELETE)和參數。 這樣的配置簡單且容易理解,因為它包含標頭、請求主體、內容、路徑參數和查詢參數。
Refit 使用基於任務的方法來處理非同步 HTTP 請求,並且旨在輕鬆與 .NET 中的非同步程式設計模型互動。
開發人員可透過更改超時設定、預設標頭設定和用於日誌記錄、驗證和重試策略的消息處理器配置來自定義核心 HTTP 客戶端。
Refit 具有內建功能來處理 HTTP 問題,使開發人員能夠輕鬆地融合自訂錯誤處理邏輯。
開發人員可以利用多種格式,或通過Refit's支援來處理不常見的數據類型,這包括自訂的序列化和反序列化轉換器。
Refit 非常適合現代 .NET 應用程式,因為它簡單地集成到依賴注入 (DI) 應用程式中,並符合依賴注入的推薦做法。
為了保護 API 呼叫,Refit 使配置身份驗證標頭、介面方法(如承載令牌和基本身份驗證)變得簡單。
以下步驟可用於在 C# 中構建和設置 Refit 客戶端:
使用 Visual Studio 建立控制台專案很容易。 若要在 Visual Studio 中建立主控台應用程式,請遵循以下步驟:
在使用Visual Studio之前,請確認該軟體已安裝在您的電腦上。
開啟 Visual Studio,點擊「建立新專案」選項。
從「新增專案」方框左側的選擇中,選擇您偏好的程式語言(例如 C#)。
從以下專案範本參考列表中,您可以選擇「Console App」或「Console App (.NET Core)」範本。
為您的專案命名,並選擇專案的儲存位置。
![Refit C#(對開發人員的運作方式):圖 3 - 通過指定項目名稱、位置和解決方案名稱配置您的控制台應用程式。 然後點擊下一步。
選擇適當的 .NET Framework。 然後點擊「Create」來建立主控台應用程式專案。
![Refit C#(開發人員運作方式):圖4 - 選擇 .NET Framework,然後點擊「建立」。 您的控制台應用程式專案將成功建立。
必須先在您的專案中包含Refit庫。 您可以使用 NuGet 封裝管理器安裝 Refit NuGet Package,或者使用 Visual Studio 中的 .NET CLI 來完成這項工作。
使用 .NET CLI 進行安裝:
dotnet add package Refit
dotnet add package Refit
IRON VB CONVERTER ERROR developers@ironsoftware.com
製作一個介面來象徵您的 API。 要定義 HTTP 方法和端點,請使用 Refit 屬性。
using Refit;
using System.Threading.Tasks;
public interface IMyApi
{
[Get("/users/{id}")]
Task<User> GetUserAsync(int id);
[Post("/users")]
Task<User> CreateUserAsync([Body] User user);
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
// Other properties...
}
using Refit;
using System.Threading.Tasks;
public interface IMyApi
{
[Get("/users/{id}")]
Task<User> GetUserAsync(int id);
[Post("/users")]
Task<User> CreateUserAsync([Body] User user);
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
// Other properties...
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
啟動Refit用戶端並根據需要調整其設定。 這可以直接在您的主程式碼中實現,也可以在您的應用程式的其他位置(例如服務)中實現。
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
public static async Task Main(string[] args)
{
// Define the base URL of your API
var apiClient = RestService.For<IMyApi>("https://api.example.com");
// Use the API client to make requests
var user = await apiClient.GetUserAsync(1);
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
// Create a new user
var newUser = new User { Name = "John Doe" };
var createdUser = await apiClient.CreateUserAsync(newUser);
Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
}
}
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
public static async Task Main(string[] args)
{
// Define the base URL of your API
var apiClient = RestService.For<IMyApi>("https://api.example.com");
// Use the API client to make requests
var user = await apiClient.GetUserAsync(1);
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
// Create a new user
var newUser = new User { Name = "John Doe" };
var createdUser = await apiClient.CreateUserAsync(newUser);
Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
通過設置基礎 HttpClient,您可以進一步個性化 Refit 客戶端。 例如,您可以設置超時、應用標頭屬性、添加預設標頭,或使用消息處理程序來設定重試策略、驗證和日誌記錄。
using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
public static async Task Main(string[] args)
{
var httpClient = new HttpClient(new HttpClientHandler
{
// Customize the HttpClientHandler as needed
})
{
BaseAddress = new Uri("https://api.example.com"),
Timeout = TimeSpan.FromSeconds(30)
};
// Add default headers if needed
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");
var apiClient = RestService.For<IMyApi>(httpClient);
// Use the API client to make requests
var user = await apiClient.GetUserAsync(1);
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
// Create a new user
var newUser = new User { Name = "John Doe" };
var createdUser = await apiClient.CreateUserAsync(newUser);
Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
}
}
using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
public static async Task Main(string[] args)
{
var httpClient = new HttpClient(new HttpClientHandler
{
// Customize the HttpClientHandler as needed
})
{
BaseAddress = new Uri("https://api.example.com"),
Timeout = TimeSpan.FromSeconds(30)
};
// Add default headers if needed
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");
var apiClient = RestService.For<IMyApi>(httpClient);
// Use the API client to make requests
var user = await apiClient.GetUserAsync(1);
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
// Create a new user
var newUser = new User { Name = "John Doe" };
var createdUser = await apiClient.CreateUserAsync(newUser);
Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
您可以按照以下說明在 C# 中創建和配置 Refit 用戶端,以使用類型安全且可維護的 RESTful API。
安裝這兩個庫,使用Refit配置一個簡單的API客戶端來檢索數據,並使用IronPDF根據這些數據創建PDF,是在C#項目中整合Refit和IronPDF的第一步。 以下是實現此目標的步驟:
一個功能豐富的庫,用於在 .NET 應用程式中處理 PDF 文件被稱為IronPDF。 憑藉其廣泛的功能集,使用者可以從頭開始或從 HTML 資料創建 PDF,還可以通過新增、刪除或更改部分來更改現有的 PDF 文件。 IronPDF為開發人員提供一個強大的API來創建、修改和轉換PDF文件,使在.NET應用程式中處理PDF變得更容易。
IronPDF 在HTML 到 PDF轉換中表現優異,確保精確保留原始佈局和樣式。 它非常適合從基於網絡的內容(如報告、發票和文檔)創建PDF。 IronPDF 支援 HTML 檔案、URL 和原始 HTML 字串,輕鬆製作高品質的 PDF 文件。
using IronPdf;
class Program
{
static void Main(string[] args)
{
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)
{
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)
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
IronPDF 讓您可以使用包括 CSS 和 JavaScript 在內的 HTML 內容創建高品質的 PDF 文件。 此功能對於從動態內容或網頁創建PDF非常有用。
IronPDF 提供現有 PDF 文件的修改工具。可以從 PDF 中提取頁面,添加文字、照片、水印或註釋,並將多個 PDF 合併成一個文件。
使用 IronPDF 的 API,您可以以程式化方式將文本、照片、形狀和其他物件添加到新的 PDF 文件中。 這使得動態生成 PDF 發票、報告及其他基於文件的輸出成為可能。
您可以使用IronPDF加密PDF文件並添加密碼安全性,以管理訪問權限和保護重要數據。
透過將資料輸入到表單欄位,使用者可以使用IronPDF創建和填寫PDF表單來與PDF文件互動。
IronPDF 透過從 PDF 文件中提取文本內容,方便搜尋、分析和操作文本數據。
IronPDF 適用於需要圖像而不是 PDF 的情況,因為它能將 PDF 文件轉換成常見的圖像格式,包括 PNG、JPEG 和 BMP。
使用 .NET CLI 或 NuGet 套件管理器將 IronPDF 添加到您的 .NET 專案中。
dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
讓我們分析一個結合 Refit 與 IronPDF 的 C# 代碼範例。 在這個例子中,我們將使用 Refit 從虛構的 RESTful API 中檢索數據,並使用 IronPDF 根據這些數據創建 PDF 文件。 以下代碼的操作如下:
using System;
using IronPdf;
using Refit;
public static async Task Main(string[] args)
{
var apiClient = RestService.For<IMyApi>("https://api.example.com");
try
{
// Use the API client to make requests
var user = await apiClient.GetUserAsync(1);
GeneratePdf(user);
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
var rand = new Random(100);
// Create a new user
var newUser = new User { Id = rand.Next(), Name = "John Doe" };
var createdUser = await apiClient.CreateUserAsync(newUser);
Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
//Passing html string as method parameter
public static void GeneratePdf(User user)
{
var htmlContent = $@"
<html>
<head>
<style>
body {{ font-family: Arial, sans-serif; }}
h1 {{ color: navy; }}
p {{ font-size: 14px; }}
</style>
</head>
<body>
<h1>User Details</h1>
<p><strong>ID:</strong> {user.Id}</p>
<p><strong>Name:</strong> {user.Name}</p>
</body>
</html>";
// Create an IronPDF ChromePdfRenderer instance
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF to a file
var filePath = "UserDetails.pdf";
pdfDocument.SaveAs(filePath);
Console.WriteLine($"PDF generated and saved to {filePath}");
}
using System;
using IronPdf;
using Refit;
public static async Task Main(string[] args)
{
var apiClient = RestService.For<IMyApi>("https://api.example.com");
try
{
// Use the API client to make requests
var user = await apiClient.GetUserAsync(1);
GeneratePdf(user);
Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
var rand = new Random(100);
// Create a new user
var newUser = new User { Id = rand.Next(), Name = "John Doe" };
var createdUser = await apiClient.CreateUserAsync(newUser);
Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
//Passing html string as method parameter
public static void GeneratePdf(User user)
{
var htmlContent = $@"
<html>
<head>
<style>
body {{ font-family: Arial, sans-serif; }}
h1 {{ color: navy; }}
p {{ font-size: 14px; }}
</style>
</head>
<body>
<h1>User Details</h1>
<p><strong>ID:</strong> {user.Id}</p>
<p><strong>Name:</strong> {user.Name}</p>
</body>
</html>";
// Create an IronPDF ChromePdfRenderer instance
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF to a file
var filePath = "UserDetails.pdf";
pdfDocument.SaveAs(filePath);
Console.WriteLine($"PDF generated and saved to {filePath}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
使用 Refit 特性,我們構建了一個名為 IMyApi 的 API 接口,並提供了用戶資料獲取的端點。 我們為 API 構建了一個 Refit 客戶端,並在主函數中異步檢索用戶數據。 如果數據成功檢索,使用者物件將被傳遞到GeneratePdf方法。 使用 IronPDF 的ChromePdfRenderer類別,我們在GeneratePdf方法中創建HTML內容轉換為PDF的文本以表示用戶詳細信息,然後將其輸出為PDF文件。 之後,創建的 PDF 會儲存在磁碟檔案中。
以下是生成的 PDF 文件的螢幕截圖。
總之,與 RESTful API 和 PDF 生成相關的開發人員可以通過 Refit 與 C# 中的 IronPDF 集成,獲得一個強大且有效的解決方案。 Refit 介面減少樣板代碼,提高可維護性,並提供一種型安全、聲明式的方法,使使用 API 變得更加容易。然而,IronPDF 提供了廣泛的工具集合,用於生成、修改和處理 PDF 文件,使其可以輕鬆地從 HTML 文本創建高質量的 PDF。
開發人員可以輕鬆地使用Refit從 API 檢索數據,並通過整合這兩個工具使用IronPDF基於該數據創建動態 PDF 文檔。 透過這項整合,工作流程得以簡化,並創造出多種機會來製作動態、數據驅動的 PDF 報告、發票及其他基於文件的輸出。
您可以將IronPDF和其他Iron Software Technologies整合到您的企業應用程序開發堆疊中,以便為客戶和終端用戶提供功能豐富的高端軟體解決方案。 這個堅實的基礎也將使專案、後端系統和流程改進更加輕鬆。
開發人員可以充分利用免費試用,IronPDF的成本是$749。 由於這些技術擁有詳盡的文件、活躍的線上開發者社群以及定期的更新,因此是現代軟體開發專案的絕佳選擇。
要了解有關如何開始使用IronPDF的更多信息,請訪問HTML到PDF的代碼範例和綜合文檔頁面。