403 interdit lors de la connexion à Google avec Java
Lorsque vous essayez de vous connecter à Google et de récupérer des informations à l'aide de Java, vous pouvez rencontrer un message 403 interdit erreur, bien que la même requête réussisse dans les navigateurs Web. Voici pourquoi et comment y remédier :
Java ne définit pas automatiquement l'en-tête "User-Agent", que les navigateurs utilisent pour s'identifier. Cela peut déclencher une erreur 403 sur les sites Web qui utilisent cet en-tête pour déterminer la légitimité de la demande. Pour résoudre ce problème, définissez manuellement l'en-tête « User-Agent » comme suit :
URLConnection connection = new URL("https://www.google.com/search?q=" + query).openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
De plus, le traitement de la réponse nécessite des étapes supplémentaires pour émuler le comportement du navigateur, notamment la récupération du cookie, l'analyse du lien du jeton de redirection et extraire les informations souhaitées. Voici le code modifié :
String cookie = connection.getHeaderField("Set-Cookie").split(";")[0]; ... if (m.find()) { long amount = Long.parseLong(m.group(1).replaceAll(",", "")); return amount; }
Avec ces ajustements, le code Java devrait pouvoir récupérer avec succès le montant des résultats de recherche auprès de Google.
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!