Maison >Java >javaDidacticiel >Comment encoder correctement les URL HTTP en Java ?

Comment encoder correctement les URL HTTP en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-18 19:18:12918parcourir

How to Properly Encode HTTP URLs in Java?

Encodage des adresses URL HTTP en Java

En Java, l'utilitaire java.net.URLEncoder est couramment utilisé pour encoder les données d'un formulaire HTML. Cependant, il peut ne pas convenir au codage d'URL HTTP en raison de ses limites dans la gestion de certains caractères.

Une approche pour coder correctement les URL HTTP consiste à utiliser la classe java.net.URI. Selon la documentation de l'URL, "URI effectue l'échappement de ses champs de composants dans certaines circonstances."

Pour encoder une URL HTTP à l'aide d'URI, créez un objet URI avec plusieurs arguments :

URI uri = new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/first book.pdf",
    null);

L'URI résultant aura des caractères illégaux échappés, fournissant le comportement attendu.

http://search.barnesandnoble.com/booksearch/first%20book.pdf

Notez que l'URI n'échappe qu'aux caractères illégaux. Pour les caractères non-ASCII, la méthode toASCIIString peut être utilisée pour convertir l'URI en une chaîne contenant uniquement des caractères US-ASCII :

String request = uri.toASCIIString();

Pour les URL avec des requêtes, utilisez le constructeur à 5 paramètres de l'URI pour spécifier à la fois le chemin de l'URL et la chaîne de requête :

URI uri = new URI(
        "http", 
        "www.google.com", 
        "/ig/api",
        "weather=São Paulo",
        null);

Cette approche offre une solution plus robuste et plus complète pour coder les URL HTTP dans Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn