Créez et servez des PDFs avec IronPDF en utilisant HttpListener !
using System;
using System.Net;
using System.Text;
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Step 1: Create an HttpListener instance
HttpListener listener = new HttpListener();
// Step 2: Configure URI prefixes
listener.Prefixes.Add("http://localhost:8080/");
// Step 3: Start the listener
listener.Start();
Console.WriteLine("Listening for requests on http://localhost:8080/");
// Step 4: Handle incoming requests
while (true)
{
// Wait for an incoming request
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Process the request (e.g., log the request URL)
Console.WriteLine($"Received request for {request.Url}");
// Generate PDF using IronPDF
var htmlContent = "<h1>PDF generated by IronPDF</h1><p>This is a sample PDF document.</p>";
var pdf = IronPdf.HtmlToPdf.StaticRenderHtmlAsPdf(htmlContent);
// Get the PDF as a byte array
byte[] pdfBytes = pdf.BinaryData;
// Create a response
HttpListenerResponse response = context.Response;
// Set the content length and type
response.ContentLength64 = pdfBytes.Length;
response.ContentType = "application/pdf";
// Write the PDF to the response output stream
using (System.IO.Stream output = response.OutputStream)
{
output.Write(pdfBytes, 0, pdfBytes.Length);
}
// Close the response
response.Close();
}
// Step 5: Stop the listener (this code is unreachable in the current loop structure)
// listener.Stop();
}
}
HttpListener C# (Comment ça marche pour les développeurs)
Chaknith Bin
août 13, 2024
Partager:
Introduction
La classe HttpListener est l'un des outils les plus utiles de C# pour construire des serveurs web autonomes de base. Cela est inclus dans l'espace de noms System.Net et offre une méthode pour à la fois recevoir et répondre aux demandes HTTP des clients. Cela peut s'avérer particulièrement utile pour gérer les communications basées sur le web dans les programmes de bureau ou pour créer des services en ligne légers.
Une bibliothèque .NET appelée IronPDF for PDF Processing est utilisée pour produire, modifier et extraire du contenu des fichiers PDF. Il offre une gamme complète de fonctionnalités permettant de créer des PDF à partir de HTML, de transformer des PDF préexistants en différents formats et de modifier des PDF à l'aide de la programmation.
Les développeurs peuvent concevoir des services web capables de produire et de servir dynamiquement des documents PDF en réponse à des requêtes HTTP en combinant HttpListener avec IronPDF. Les applications qui doivent générer des PDF en temps réel en fonction des entrées de l'utilisateur ou d'autres données dynamiques peuvent trouver cette traduction extrêmement utile.
Qu'est-ce que HttpListener C# ?
Documentation HttpListener est une classe simple mais flexible dans l'espace de noms System.Net du .NET Framework qui permet aux développeurs de concevoir des serveurs HTTP simples en C#. Son objectif est de recevoir les demandes HTTP entrantes des clients, de les traiter et de répondre avec les informations appropriées. Cette classe est une excellente option pour les services web légers et autonomes ou pour l'intégration de fonctions de communication basées sur le web dans des programmes de bureau, car elle ne nécessite pas de serveur web complet comme IIS.
Les développeurs peuvent définir des préfixes URI pour déterminer les adresses que le serveur doit écouter en utilisant HttpListener. Une fois l'écouteur démarré, il répond à toutes les demandes entrantes et utilise le contexte HttpListenerContext pour donner accès aux objets de demande et de réponse. Cette configuration permet de créer une logique de traitement des requêtes HTTP spécifique aux besoins de l'application. La facilité d'utilisation et l'adaptabilité de HttpListener le rendent particulièrement utile dans les situations nécessitant un serveur HTTP rapide, efficace et configurable. HttpListener offre une solution stable et sans surcharge pour le développement de serveurs locaux à des fins de test, le prototypage de services en ligne ou l'intégration de protocoles de communication dans des applications de bureau.
Caractéristiques de HttpListener C&num ;
Un certain nombre de caractéristiques font de HttpListener de C# un outil efficace pour construire des serveurs HTTP. Parmi les éléments essentiels, on peut citer
Facilité d'utilisation : HttpListener est une bibliothèque facile à utiliser qui permet aux programmeurs d'écrire moins de code pour établir un serveur HTTP de base.
Préfixes URI : Plusieurs préfixes URI peuvent être spécifiés pour l'écoute, offrant une flexibilité dans la gestion de divers points de terminaison et garantissant que le serveur ne réagit qu'aux requêtes pertinentes.
Opérations asynchrones : HttpListener prend en charge les méthodes asynchrones, ce qui améliore l'évolutivité et la réactivité du serveur en rendant possible la gestion efficace de nombreuses requêtes simultanées sans interrompre le thread principal.
Authentification : Vous pouvez sécuriser vos points de terminaison selon vos besoins grâce à la prise en charge de HttpListener pour de nombreuses techniques d’authentification, telles que Basic, Digest, NTLM et l'authentification intégrée de Windows.
Support HTTPS : HttpListener peut être configuré pour répondre aux requêtes HTTPS, permettant ainsi une communication sécurisée entre le client et le serveur.
Gestion des requêtes et des réponses : HttpListener vous offre un contrôle complet sur le processus de requête et de réponse en vous permettant de modifier les réponses en ajoutant de nouveaux en-têtes, des codes d'état et des types de contenu, ainsi qu'en lisant les données de la requête, les en-têtes et les paramètres.
Configuration de l'écouteur : HttpListener offre des options de configuration spécifiques à l'écouteur pour ajuster le comportement du serveur, telles que la gestion des certificats (pour HTTPS), les délais d'attente et d'autres paramètres.
Journalisation et diagnostics : Active la journalisation et les diagnostics, fournissant des informations complètes sur les requêtes et les réponses qui facilitent la surveillance et le dépannage.
Compatibilité : Permet une intégration fluide avec les services et applications .NET actuels car il fonctionne bien avec d'autres composants et bibliothèques .NET.
Multi-plateforme : HttpListener est compatible avec Windows, Linux et macOS et est disponible avec .NET Core et .NET 5+, offrant une flexibilité de développement multi-plateforme.
Création et configuration de HttpListener C&num ;
La création et la configuration d'un HttpListener en C# comportent plusieurs étapes. Un tutoriel complet sur la configuration d'un HttpListener pour gérer les requêtes HTTP est disponible ci-dessous.
Créer un nouveau projet .NET
Ouvrez l'invite de commande, la console ou le terminal.
Lancez l'application console .NET nouvellement créée en tapant
dotnet new console -n HttplistenerExample
cd HttplistenerExample
dotnet new console -n HttplistenerExample
cd HttplistenerExample
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Créer une instance HttpListener
Tout d'abord, créez une instance de la classe HttpListener.
Configurer les préfixes URI
Ajouter des préfixes URI pour spécifier les adresses que l'auditeur doit traiter.
Démarrer l'écouteur
Lancez l'écouteur HttpListener pour commencer à écouter les requêtes HTTP entrantes.
Gérer les requêtes entrantes
Créez une boucle pour gérer les demandes entrantes, les traiter et envoyer des réponses.
Arrêter l'écouteur
Arrêter gracieusement le HttpListener lorsqu'il n'est plus nécessaire.
Voici une illustration d'un seul exemple d'une seule demande de ces étapes en action :
using System;
using System.Net;
using System.Text;
class Program
{
public static string url="http://localhost:8080/";
public static HttpListener listener;
public static void Main(string[] args)
{
// Step 1: Create an HttpListener instance
listener = new HttpListener();
// Step 2: Configure URI prefixes
listener.Prefixes.Add(url);
// Step 3: Start the listener
listener.Start();
Console.WriteLine("Listening for requests on "+url);
// Step 4: Handle incoming requests
// Wait for an incoming request
while (true)
{
// getcontext method blocks
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Process the request (e.g., log the request URL with or without query string)
Console.WriteLine($"Received request for {request.Url}");
// Create a response
HttpListenerResponse response = context.Response;
// add response info
string responseString = "<html><body>Hello, world!</body></html>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
// Set the content length and type
response.ContentLength64 = buffer.Length;
response.ContentType = "text/html";
// Write the response to the output stream
using (System.IO.Stream output = response.OutputStream)
{
output.Write(buffer, 0, buffer.Length);
}
// Close the response
response.Close();
}
// Step 5: Stop the listener (this code is unreachable in the current loop structure)
// listener.Stop();
}
}
using System;
using System.Net;
using System.Text;
class Program
{
public static string url="http://localhost:8080/";
public static HttpListener listener;
public static void Main(string[] args)
{
// Step 1: Create an HttpListener instance
listener = new HttpListener();
// Step 2: Configure URI prefixes
listener.Prefixes.Add(url);
// Step 3: Start the listener
listener.Start();
Console.WriteLine("Listening for requests on "+url);
// Step 4: Handle incoming requests
// Wait for an incoming request
while (true)
{
// getcontext method blocks
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Process the request (e.g., log the request URL with or without query string)
Console.WriteLine($"Received request for {request.Url}");
// Create a response
HttpListenerResponse response = context.Response;
// add response info
string responseString = "<html><body>Hello, world!</body></html>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
// Set the content length and type
response.ContentLength64 = buffer.Length;
response.ContentType = "text/html";
// Write the response to the output stream
using (System.IO.Stream output = response.OutputStream)
{
output.Write(buffer, 0, buffer.Length);
}
// Close the response
response.Close();
}
// Step 5: Stop the listener (this code is unreachable in the current loop structure)
// listener.Stop();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Le code C# inclus décrit le processus de création et de configuration d'un HttpListener, qui fonctionne comme un serveur HTTP de base. Pour définir l'adresse pour laquelle il traitera les requêtes, il instancie d'abord un objet HttpListener et ajoute un préfixe URI (http://localhost:8080/). Ensuite, la méthode Start est utilisée pour démarrer l'auditeur. Nous utilisons une boucle while indéfinie pour continuer à écouter les nouvelles demandes HTTP. GetContext attend une requête pendant la boucle et renvoie un objet HttpListenerContext qui comprend les objets requête et réponse.
Après avoir enregistré l'URL de la demande, un objet HTML et réponse simple est créé, transformé en tableau d'octets et envoyé au flux de sortie de la réponse. Avant de renvoyer la réponse au client, le type et la durée de la réponse sont correctement spécifiés. La boucle signifie que le serveur ne s'arrête jamais de traiter les demandes, l'une après l'autre. La méthode halt devrait être appelée afin d'arrêter la demande de la console d'écoute, mais dans ce cas, la boucle infinie l'empêche d'être atteinte.
Pour commencer
IronPDF vous aide à créer et à modifier des PDF de haute qualité en .NET, dont vous avez besoin pour créer des documents et des rapports. La fonction de serveur HTTP intégrée à HttpListener vous permet de gérer les requêtes web dans de petites applications ou services. Ces deux outils améliorent l'utilité et la rapidité des applications .NET dans leurs domaines respectifs. Pour commencer à utiliser le HttpListener de C# et à l'intégrer à IronPDF pour créer des PDF, prenez les mesures suivantes :
Qu'est-ce qu'IronPDF ?
La bibliothèque .NET riche en fonctionnalités IronPDF for C# permet aux programmes C# de créer, lire et modifier des documents PDF. Grâce à cet utilitaire, les développeurs peuvent rapidement transformer le matériel HTML, CSS et JavaScript en PDF de haute qualité et prêts à être imprimés. Parmi les tâches les plus importantes, citons l'ajout d'en-têtes et de pieds de page, la division et la combinaison de PDF, l'ajout de filigranes aux documents et la conversion de HTML en PDF. IronPDF est utile pour une variété d'applications car il prend en charge à la fois .NET Framework et .NET Core.
Les PDF étant faciles à utiliser et contenant beaucoup d'informations, les développeurs peuvent facilement les inclure dans leurs produits. Parce qu'IronPDF peut gérer des mises en page et des formatages de données complexes, les PDF qu'il génère en sortie ressemblent beaucoup au client ou au texte HTML d'origine.
IronPDF excelle dans la conversion HTML en PDF, garantissant une préservation précise des mises en page et des styles d'origine. C'est parfait pour créer des PDF à partir de contenus basés sur le web, tels que des rapports, des factures et de la documentation. Avec la prise en charge des fichiers HTML, des URL et des chaînes HTML brutes, IronPDF produit facilement des documents PDF de haute qualité.
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
$vbLabelText $csharpLabel
Caractéristiques d'IronPDF
Génération de PDF à partir de HTML
Convertissez JavaScript, HTML et CSS en PDF. IronPDF prend en charge les media queries et le responsive design, deux normes web contemporaines. Sa prise en charge des normes web modernes est utile pour décorer dynamiquement les rapports, factures et documents PDF avec du HTML et du CSS.
Édition de PDF
Il est possible d'ajouter du texte, des images et d'autres contenus à des PDF préexistants. Avec IronPDF, les développeurs peuvent extraire le texte et les images des fichiers PDF, combiner plusieurs PDF en un seul fichier, diviser les fichiers PDF en plusieurs documents distincts et inclure des filigranes, des annotations, des en-têtes et des pieds de page aux pages PDF.
Conversion PDF
Convertissez plusieurs formats de fichiers, notamment Word, Excel et des fichiers d'images, en PDF. IronPDF prend également en charge la conversion de PDF en image (PNG, JPEG, etc.).
Performances et Fiabilité
Les performances élevées et la fiabilité sont des qualités recherchées dans les environnements industriels. Les développeurs peuvent gérer facilement de grands ensembles de documents.
Installer IronPDF
Pour obtenir les outils dont vous avez besoin pour travailler avec des PDF dans des projets .NET, installez le paquet IronPDF.
dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
$vbLabelText $csharpLabel
Intégrer HttpListener C&num ; avec IronPDF
Il s'agit d'un exemple complet qui vous montre comment utiliser IronPDF pour créer et servir un document PDF et configurer un HttpListener :
using System;
using System.Net;
using System.Text;
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Step 1: Create an HttpListener instance
HttpListener listener = new HttpListener();
// Step 2: Configure URI prefixes
listener.Prefixes.Add("http://localhost:8080/");
// Step 3: Start the listener
listener.Start();
Console.WriteLine("Listening for requests on http://localhost:8080/");
// Step 4: Handle incoming requests
while (true)
{
// Wait for an incoming request
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Process the request (e.g., log the request URL)
Console.WriteLine($"Received request for {request.Url}");
// Generate PDF using IronPDF
var htmlContent = "<h1>PDF generated by IronPDF</h1><p>This is a sample PDF document.</p>";
var pdf = IronPdf.HtmlToPdf.StaticRenderHtmlAsPdf(htmlContent);
// Get the PDF as a byte array
byte[] pdfBytes = pdf.BinaryData;
// Create a response
HttpListenerResponse response = context.Response;
// Set the content length and type
response.ContentLength64 = pdfBytes.Length;
response.ContentType = "application/pdf";
// Write the PDF to the response output stream
using (System.IO.Stream output = response.OutputStream)
{
output.Write(pdfBytes, 0, pdfBytes.Length);
}
// Close the response
response.Close();
}
// Step 5: Stop the listener (this code is unreachable in the current loop structure)
// listener.Stop();
}
}
using System;
using System.Net;
using System.Text;
using IronPdf;
class Program
{
static void Main(string[] args)
{
// Step 1: Create an HttpListener instance
HttpListener listener = new HttpListener();
// Step 2: Configure URI prefixes
listener.Prefixes.Add("http://localhost:8080/");
// Step 3: Start the listener
listener.Start();
Console.WriteLine("Listening for requests on http://localhost:8080/");
// Step 4: Handle incoming requests
while (true)
{
// Wait for an incoming request
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Process the request (e.g., log the request URL)
Console.WriteLine($"Received request for {request.Url}");
// Generate PDF using IronPDF
var htmlContent = "<h1>PDF generated by IronPDF</h1><p>This is a sample PDF document.</p>";
var pdf = IronPdf.HtmlToPdf.StaticRenderHtmlAsPdf(htmlContent);
// Get the PDF as a byte array
byte[] pdfBytes = pdf.BinaryData;
// Create a response
HttpListenerResponse response = context.Response;
// Set the content length and type
response.ContentLength64 = pdfBytes.Length;
response.ContentType = "application/pdf";
// Write the PDF to the response output stream
using (System.IO.Stream output = response.OutputStream)
{
output.Write(pdfBytes, 0, pdfBytes.Length);
}
// Close the response
response.Close();
}
// Step 5: Stop the listener (this code is unreachable in the current loop structure)
// listener.Stop();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Le code C# inclus montre comment connecter la conversion HTML en PDF de IronPDF avec HttpListener pour générer et délivrer dynamiquement des documents PDF, et comment le configurer pour fonctionner comme un serveur de méthode HTTP basique. La première étape consiste à créer une instance de HttpListener et à la configurer pour qu'elle écoute les requêtes HTTP sur http://localhost:8080/.
Après le démarrage de l'auditeur, une boucle sans fin prend le relais pour traiter les demandes entrantes. Le code enregistre l'URL de chaque requête, utilise IronPDF pour créer un document PDF à partir du texte HTML, puis transforme le PDF en un tableau d'octets. Ensuite, la réponse est configurée avec le type MIME approprié (application/pdf) et la longueur du contenu.
Le premier flux de réponse est fermé pour être renvoyé au client après l'écriture du tableau d'octets PDF dans le flux de sortie de la réponse. Avec cette configuration, le serveur peut effectivement renvoyer des documents PDF créés dynamiquement en réponse à des requêtes HTTP.
Conclusion
En résumé, l'utilisation d'IronPDF en conjonction avec HttpListener de C# offre un moyen fiable de créer et de fournir des fichiers PDF via HTTP de manière dynamique. Avec l'aide de HttpListener, les applications C# peuvent créer des serveurs HTTP légers capables de traiter les requêtes entrantes et de générer des réponses flexibles. Grâce à la fonction de conversion dynamique de HTML en PDF d'IronPDF, les développeurs peuvent produire efficacement des rapports, des factures ou d'autres documents PDF personnalisés ou axés sur les données, directement à partir de la logique côté serveur.
Les applications nécessitant la génération et la fourniture de documents en temps réel via des interfaces web ou des API peuvent trouver cette combinaison particulièrement utile. Les développeurs peuvent répondre à des demandes commerciales particulières en mettant en œuvre des solutions évolutives et réactives à l'aide de HttpListener et IronPDF. Ces outils améliorent l'expérience des utilisateurs en facilitant la génération et la livraison de documents sur le web.
Vous pouvez améliorer votre boîte à outils pour le développement .NET en utilisant l'OCR, en travaillant avec les codes-barres, en créant des PDFs, en vous connectant à Excel et bien plus encore avec IronPDF, et Iron Software Licensing Options offre au développeur de meilleures applications web et capacités ainsi qu'un développement plus efficace à partir de $749. Il le fait en combinant sa base fondamentale avec la suite et les technologies hautement adaptables d'Iron Software.
Le processus de choix du meilleur modèle sera simplifié pour les promoteurs en exposant clairement les possibilités de licence adaptées au projet. Ces avantages permettent aux développeurs d'appliquer des solutions à une variété de problèmes de manière efficace, opportune et coordonnée.
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT Autofac C# (Comment ça marche pour les développeurs)
SUIVANT > AutoFixture C# (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier