如何在 C# 中使用 HTTP 請求標頭
在 C# 中,HTTP 請求標頭可讓您在使用 IronPDF 將 URL 轉換為 PDF 時,傳送額外的元資料,例如驗證憑證或自訂使用者代理程式。 只需建立一個標題字典,並在渲染前將其指派給 HttpRequestHeaders 屬性即可。
快速入門:在 PDF 渲染中新增 HTTP 標頭
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf
PM > Install-Package IronPdf -
請複製並執行此程式碼片段。
new IronPdf.ChromePdfRenderer { RenderingOptions = { HttpRequestHeaders = new Dictionary<string,string> { { "Authorization", "Bearer your_token_here" }, { "User-Agent", "MyApp/1.0" } } } } .RenderUrlAsPdf("https://httpbin.org/bearer") .SaveAs("withHeaders.pdf"); -
部署至您的生產環境進行測試
立即透過免費試用,在您的專案中開始使用 IronPDF
簡化工作流程(5 個步驟)
- 從 NuGet 下載 IronPDF
- 將 HTTP 請求標頭準備為 C# 字典
- 將字典指派給 HttpRequestHeaders 屬性
- 使用
RenderUrlAsPdf方法將 URL 渲染為 PDF - 將 PDF 儲存為檔案或匯出為位元組
什麼是 HTTP 請求標頭?
HTTP 請求標頭是客戶端(例如網頁瀏覽器或 API 客戶端)在發出 HTTP 請求時傳送給伺服器的元資料。標頭提供有關請求的額外資訊,例如驗證詳細資料、內容類型、使用者代理程式等。
此功能用於將 URL 轉為 PDF 時,讓您能在發送請求時提供 HTTP 標頭資訊。在進行 URL 轉 PDF 轉換時,標頭對於存取受保護的內容或需要特定驗證機制的 API 至關重要。
IronPDF 的 HTTP 標頭支援功能與 Chrome PDF 渲染引擎無縫整合,確保您的標頭在渲染過程中能正確傳送。 這在處理受保護的網站或位於 TLS 驗證系統後方的網站時,尤為重要。
如何在 PDF 渲染中新增自訂頁首?
在使用 HttpRequestHeaders 屬性設定 HTTP 請求標頭之前,請先設計一個適當的 HTTP 請求標頭物件。 在渲染過程中,此標頭將包含在傳送至伺服器的 URL 請求中。 舉例來說,我們將使用 httpbin.org,這是一個有助於展示請求標頭的網站。
:path=/static-assets/pdf/content-code-examples/how-to/http-request-header.cs
using IronPdf;
using System.Collections.Generic;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", "Bearer test-token-123" }
};
// Render PDF from authenticated page
var pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer");
pdf.SaveAs("output.pdf");
Imports IronPdf
Imports System.Collections.Generic
Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From {
{"Authorization", "Bearer test-token-123"}
}
' Render PDF from authenticated page
Dim pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer")
pdf.SaveAs("output.pdf")
處理多個標題
在處理複雜的驗證情境或 API 時,您通常需要傳送多個標頭。 以下是處理各種標題組合的方式:
using IronPdf;
using System.Collections.Generic;
var renderer = new ChromePdfRenderer();
// Configure multiple headers for API access
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", "Bearer your-api-token" },
{ "Accept", "text/html,application/xhtml+xml" },
{ "Accept-Language", "en-US,en;q=0.9" },
{ "Cache-Control", "no-cache" },
{ "X-Custom-Header", "MyApplication/2.0" }
};
// Additional rendering options for better results
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for dynamic content
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.ViewPortHeight = 1080;
var pdf = renderer.RenderUrlAsPdf("https://api.example.com/report");
pdf.SaveAs("api-report.pdf");
using IronPdf;
using System.Collections.Generic;
var renderer = new ChromePdfRenderer();
// Configure multiple headers for API access
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", "Bearer your-api-token" },
{ "Accept", "text/html,application/xhtml+xml" },
{ "Accept-Language", "en-US,en;q=0.9" },
{ "Cache-Control", "no-cache" },
{ "X-Custom-Header", "MyApplication/2.0" }
};
// Additional rendering options for better results
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for dynamic content
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.ViewPortHeight = 1080;
var pdf = renderer.RenderUrlAsPdf("https://api.example.com/report");
pdf.SaveAs("api-report.pdf");
Imports IronPdf
Imports System.Collections.Generic
Dim renderer As New ChromePdfRenderer()
' Configure multiple headers for API access
renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From {
{"Authorization", "Bearer your-api-token"},
{"Accept", "text/html,application/xhtml+xml"},
{"Accept-Language", "en-US,en;q=0.9"},
{"Cache-Control", "no-cache"},
{"X-Custom-Header", "MyApplication/2.0"}
}
' Additional rendering options for better results
renderer.RenderingOptions.WaitFor.RenderDelay(500) ' Wait for dynamic content
renderer.RenderingOptions.ViewPortWidth = 1920
renderer.RenderingOptions.ViewPortHeight = 1080
Dim pdf = renderer.RenderUrlAsPdf("https://api.example.com/report")
pdf.SaveAs("api-report.pdf")
哪些 HTTP 標頭最常被使用?
- 授權:傳送驗證憑證(Bearer 憑證、基本驗證等)
- Content-Type:定義請求正文的格式(例如 application/json)
- Accept:指定預期的回應格式(例如 text/html、application/json)
- User-Agent:識別發出請求的客戶端(瀏覽器、API 客戶端等)
- Referer:指稱連結至當前請求的來源頁面
- Cookie:傳送 Cookie 以進行工作階段追蹤
在使用 Cookie 進行驗證時,您可以將 Cookie 標頭與其他驗證方法結合使用,以提升安全性。 IronPDF 中的自訂記錄功能可協助您在開發過程中排除與標頭相關的問題。
何時該使用自訂標頭?
在存取需要驗證的受保護資源、處理要求特定標頭的 API,或需要向伺服器識別您的應用程式時,自訂標頭至關重要。 它們特別適用於從經過驗證的網頁或 API 端點擷取 PDF 檔案。
常見應用情境包括:
- 存取需經身份驗證的內部公司儀表板
- 從需要 API 金鑰的 REST API 生成報告
- 將經過驗證的 SaaS 應用程式頁面轉換為 PDF
- 處理採用憑證式驗證的微服務
與驗證系統的整合
IronPDF 的標頭支援功能可與各種驗證系統無縫整合。 針對基本驗證情境:
using IronPdf;
using System;
using System.Text;
var renderer = new ChromePdfRenderer();
// Create Basic Auth header
string username = "user@example.com";
string password = "securepassword";
string credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}"));
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", $"Basic {credentials}" }
};
// Render protected resource
var pdf = renderer.RenderUrlAsPdf("https://protected.example.com/report");
pdf.SaveAs("protected-report.pdf");
using IronPdf;
using System;
using System.Text;
var renderer = new ChromePdfRenderer();
// Create Basic Auth header
string username = "user@example.com";
string password = "securepassword";
string credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}"));
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", $"Basic {credentials}" }
};
// Render protected resource
var pdf = renderer.RenderUrlAsPdf("https://protected.example.com/report");
pdf.SaveAs("protected-report.pdf");
Imports IronPdf
Imports System
Imports System.Text
Dim renderer = New ChromePdfRenderer()
' Create Basic Auth header
Dim username As String = "user@example.com"
Dim password As String = "securepassword"
Dim credentials As String = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}"))
renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From {
{"Authorization", $"Basic {credentials}"}
}
' Render protected resource
Dim pdf = renderer.RenderUrlAsPdf("https://protected.example.com/report")
pdf.SaveAs("protected-report.pdf")
若標頭缺失或錯誤會如何?
若標頭資訊遺漏或錯誤,可能會導致 401 未授權錯誤、403 禁止存取回應,或頁面渲染不完整。 請務必確認您的標頭值符合伺服器的預期,特別是驗證憑證和 API 金鑰。
若要排除頁首相關問題,建議使用 IronPDF 的除錯功能來檢視渲染過程。 常見問題包括:
- 已過期的憑證或 API 金鑰
- 標題格式不正確
- 缺少必要的標頭
- 區分大小寫的標頭名稱被誤打
進階標頭使用與動態內容
處理需要驗證且大量使用 JavaScript 的網頁時,請將標頭與渲染延遲結合使用:
:path=/static-assets/pdf/content-code-examples/how-to/http-request-header.cs
using IronPdf;
using System.Collections.Generic;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", "Bearer test-token-123" }
};
// Render PDF from authenticated page
var pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer");
pdf.SaveAs("output.pdf");
Imports IronPdf
Imports System.Collections.Generic
Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From {
{"Authorization", "Bearer test-token-123"}
}
' Render PDF from authenticated page
Dim pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer")
pdf.SaveAs("output.pdf")
標頭安全性的最佳實踐
處理敏感的驗證標頭時:
- 切勿硬編碼憑證:請將令牌和 API 金鑰儲存於安全的配置中
- 使用 HTTPS URL:傳送驗證標頭時,請務必從 HTTPS 端點進行渲染
- 定期輪替存取憑證:針對長期運行的應用程式實作憑證輪替機制
- 驗證 SSL 憑證:確保安全連線的憑證驗證正確無誤
- 監控標頭使用情況:記錄標頭使用情況以供安全稽核
如需更多安全性考量,請參閱 PDF 權限與密碼指南,以保護您生成的 PDF 檔案。
與現代網路應用程式的整合
現代的單頁應用程式 (SPAs) 和漸進式網路應用程式 (PWAs) 通常需要特定的標頭才能正確渲染。 以下是處理 OAuth 2.0 受保護資源的方法:
using IronPdf;
using System.Collections.Generic;
using System.Threading.Tasks;
public async Task<PdfDocument> GenerateOAuthProtectedPdf(string accessToken, string url)
{
var renderer = new ChromePdfRenderer();
// Configure OAuth headers
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", $"Bearer {accessToken}" },
{ "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }
};
// Set rendering options for SPAs
renderer.RenderingOptions.WaitFor.RenderDelay(3000);
renderer.RenderingOptions.EnableJavaScript = true;
// Render and return the PDF
return await Task.Run(() => renderer.RenderUrlAsPdf(url));
}
using IronPdf;
using System.Collections.Generic;
using System.Threading.Tasks;
public async Task<PdfDocument> GenerateOAuthProtectedPdf(string accessToken, string url)
{
var renderer = new ChromePdfRenderer();
// Configure OAuth headers
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
{ "Authorization", $"Bearer {accessToken}" },
{ "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }
};
// Set rendering options for SPAs
renderer.RenderingOptions.WaitFor.RenderDelay(3000);
renderer.RenderingOptions.EnableJavaScript = true;
// Render and return the PDF
return await Task.Run(() => renderer.RenderUrlAsPdf(url));
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Threading.Tasks
Public Async Function GenerateOAuthProtectedPdf(accessToken As String, url As String) As Task(Of PdfDocument)
Dim renderer As New ChromePdfRenderer()
' Configure OAuth headers
renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From {
{"Authorization", $"Bearer {accessToken}"},
{"Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}
}
' Set rendering options for SPAs
renderer.RenderingOptions.WaitFor.RenderDelay(3000)
renderer.RenderingOptions.EnableJavaScript = True
' Render and return the PDF
Return Await Task.Run(Function() renderer.RenderUrlAsPdf(url))
End Function
若涉及更複雜的非同步操作情境,請考慮針對驗證失敗的情況實作重試邏輯。
結論
IronPDF 中的 HTTP 請求標頭提供了一種強大的方式,可存取並將經過驗證的網頁內容轉換為 PDF。 透過正確設定標頭,無論您使用的是簡單的 API 金鑰或複雜的 OAuth 系統,都能將 PDF 生成功能無縫整合至現有的驗證工作流程中。 請務必遵循安全最佳實務,並善用 IronPDF 豐富的渲染選項以獲得最佳效果。
常見問題
什麼是 HTTP 請求標頭?在建立 PDF 時為何需要它們?
HTTP 請求標頭是隨網頁請求一併傳送的元資料,提供額外資訊,例如驗證詳細資料、內容類型及使用者代理程式。當使用 IronPDF 將 URL 轉換為 PDF 時,您可以新增自訂標頭,以存取受保護的內容、需要驗證的 API,或位於安全系統後方的網站。這對於渲染受保護的網頁至關重要,若無適當的憑證,這些網頁將無法存取。
將 URL 轉換為 PDF/A 時,該如何新增自訂 HTTP 標頭?
若要在 IronPDF 中新增自訂 HTTP 標頭,請建立一個
能否在 PDF 渲染時一次新增多個 HTTP 標頭?
是的,IronPDF 允許您同時新增多個 HTTP 標頭。設定 HttpRequestHeaders 屬性時,只需將所有標頭的鍵值對納入同一個字典中即可。此功能對於複雜的驗證情境特別有用,例如您可能需要在一項請求中同時傳送授權代碼、自訂使用者代理程式、accept 標頭及其他元資料。
在 URL 轉 PDF 轉換過程中,可以使用哪些類型的驗證標頭?
IronPDF 支援多種驗證標頭,包括 Bearer 憑證、基本驗證、API 金鑰及自訂驗證方案。您可透過 HttpRequestHeaders 屬性新增這些標頭,藉此轉換受保護的網頁內容、存取需要特定驗證機制的 API,或處理位於 TLS 驗證系統後方的網站。
有沒有快速的方法,能用僅一行程式碼來渲染帶有標頭的 URL?
是的,IronPDF 提供了一行代碼的解決方案:new IronPdf.ChromePdfRenderer { RenderingOptions = { HttpRequestHeaders = new Dictionary

