Personnalisation de l'agent utilisateur pour les connexions URL Java
Lors de l'établissement d'une connexion à une page Web à l'aide de l'URLConnection de Java, vous souhaiterez peut-être définir un utilisateur personnalisé agent. Ceci est couramment utilisé pour imiter le comportement d'un navigateur Web particulier ou pour identifier votre application. Cependant, les tentatives de définition d'un agent utilisateur autre que celui par défaut entraînent souvent l'ajout de la valeur par défaut.
Solution :
Dans les versions antérieures de Java, définir un utilisateur personnalisé agent via setRequestProperty("User-Agent", "custom_agent") ajouté "Java/xx" à la fin. Ce problème a été résolu dans Java 1.6.30 et versions ultérieures.
Exemple :
import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); System.out.println(connection.getRequestProperty("User-Agent")); } }
Dans Java 1.6.30 ou version ultérieure, ce code affichera "Mozilla /5.0" sans le "Java/xx" ajouté.
Netcat Vérification :
Pour vérifier que l'agent utilisateur personnalisé est utilisé, vous pouvez écouter sur un port en utilisant netcat :
$ nc -l -p 8080
Lorsque le code ci-dessus est exécuté, vous devriez voir l'agent utilisateur personnalisé dans les en-têtes HTTP reçus par netcat.
Solutions alternatives :
Si Si vous rencontrez toujours des problèmes lors de l'ajout de "Java/xx" dans les anciennes versions de Java, vous pouvez essayer d'utiliser une bibliothèque HTTP tierce qui vous permet de contrôler entièrement l'en-tête User-Agent.
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!