"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment définir correctement l'agent utilisateur dans Java URLConnection ?

Comment définir correctement l'agent utilisateur dans Java URLConnection ?

Publié le 2024-11-16
Parcourir:288

How to Correctly Set the User-Agent in Java URLConnection?

Définition de l'agent utilisateur d'une connexion URL Java

Lors de la tentative d'analyse d'une page Web à l'aide de Java avec URLConnection et de la définition de l'agent utilisateur sur un paramètre spécifié valeur, un "Java/1.5.0_19" supplémentaire peut être ajouté à la fin. Cela est dû à une limitation dans les anciennes versions de Java.

Solution (Java 1.6.30 et versions ultérieures)

Dans Java 1.6.30 et versions ultérieures, ce problème a été résolu. La configuration de l'agent utilisateur à l'aide de setRequestProperty("User-Agent", "Mozilla ...") fonctionne désormais correctement sans ajouter la version Java.

Vérification

Pour vérifier Ceci, vous pouvez écouter sur un port en utilisant netcat, qui affiche les en-têtes HTTP bruts des requêtes entrantes. Sans définir l'agent utilisateur, les en-têtes afficheront :

GET /foobar HTTP/1.1
User-Agent: Java/1.6.0_30
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Lors de la configuration de l'agent utilisateur, les en-têtes afficheront à la place :

GET /foobar HTTP/1.1
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
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Exemple de code (Java 1.6.30)

L'exemple de code suivant montre comment définir correctement l'agent utilisateur :

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;


public class TestUrlOpener {

    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());
    }

}
Dernier tutoriel Plus>

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