Personnalisation de l'agent utilisateur pour les connexions URL en Java
Lors de l'utilisation d'URLConnection en Java pour récupérer du contenu Web, la définition d'un agent utilisateur personnalisé est souvent nécessaire pour exploration précise du site Web et simulation des utilisateurs. Cependant, le moteur d'exécution Java par défaut ajoute son propre identifiant à la chaîne de l'agent utilisateur, ce qui peut ne pas être souhaitable dans certains scénarios.
La requête
Un développeur Java a demandé de l'aide. en définissant un agent utilisateur sans le suffixe "Java/1.5.0_19" ajouté par le runtime. L'utilisateur a fourni un extrait de code illustrant comment il a tenté de définir l'agent utilisateur à l'aide de setRequestProperty().
La solution
Heureusement, dans Java 1.6.30 et versions ultérieures, la configuration de l'agent utilisateur via setRequestProperty("User-Agent", "") fonctionne parfaitement, sans qu'aucune information d'exécution Java supplémentaire ne soit ajoutée. Pour démontrer cela, le développeur a utilisé netcat pour écouter les requêtes HTTP entrantes et a observé que l'agent utilisateur personnalisé avait été envoyé avec succès sans le suffixe Java.
Implémentation complète
import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws IOException { URL url = new URL("http://localhost:8080/foobar"); URLConnection hc = url.openConnection(); hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); System.out.println(hc.getContentType()); } }
En utilisant cette approche, les développeurs peuvent définir efficacement des agents utilisateurs pour leurs connexions URL en Java sans aucun ajout indésirable spécifique à Java, garantissant ainsi le comportement souhaité pour leur scraping Web ou d'autres tâches de communication.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3