Maison >Java >javaDidacticiel >Comment définir l'agent utilisateur d'une connexion URL Java ?
Lors de l'utilisation d'URLConnection pour analyser des pages Web en Java, il est crucial de définir correctement l'agent utilisateur. Cependant, par défaut, l'agent utilisateur spécifié est suivi de "Java/1.5.0_19". Cela peut être un problème lorsque vous essayez de dissimuler ou d'usurper l'identité d'un navigateur particulier.
Clarification et résolution
Dans les versions Java 1.6.30 et ultérieures, le problème avec l'agent utilisateur l'ajout n'existe plus et setRequestProperty("User-Agent", "Mozilla ...") fonctionne comme prévu. Pour vérifier cela, un écouteur de port peut être configuré pour capturer les en-têtes HTTP.
Lorsqu'une requête est envoyée sans que setRequestProperty soit utilisé, les en-têtes HTTP incluront :
User-Agent: Java/1.6.0_30
Cependant, lorsque setRequestProperty est utilisé pour définir un agent utilisateur spécifique, les en-têtes HTTP refléteront le spécifié value :
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
Exemple de code
Le code suivant fournit un exemple complet de la façon de définir l'agent utilisateur et de récupérer le type de contenu d'une page Web :
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()); } }
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!