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

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

Mary-Kate Olsen
Libérer: 2024-11-24 02:59:09
original
881 Les gens l'ont consulté

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 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 définition 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
Copier après la connexion

Lors de la définition 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
Copier après la connexion

Exemple de code (Java 1.6. 30)

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

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

}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal