403 Verboten beim Herstellen einer Verbindung zu Google mit Java
Wenn Sie versuchen, eine Verbindung zu Google herzustellen und Informationen mithilfe von Java abzurufen, kann es sein, dass Sie auf einen 403 Verbotenen Fehler stoßen Fehler, obwohl die gleiche Anfrage in Webbrowsern erfolgreich ist. Hier erfahren Sie, warum und wie Sie das Problem beheben können:
Java setzt nicht automatisch den „User-Agent“-Header, den Browser verwenden, um sich selbst zu identifizieren. Dies kann auf Websites, die diesen Header verwenden, um die Legitimität der Anfrage zu ermitteln, einen 403-Fehler auslösen. Um dieses Problem zu beheben, legen Sie den „User-Agent“-Header manuell wie folgt fest:
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");
Darüber hinaus sind für die Verarbeitung der Antwort weitere Schritte erforderlich, um das Browserverhalten zu emulieren, einschließlich des Abrufens des Cookies, des Parsens des Weiterleitungstoken-Links usw Extrahieren der gewünschten Informationen. Hier ist der geänderte Code:
String cookie = connection.getHeaderField("Set-Cookie").split(";")[0]; ... if (m.find()) { long amount = Long.parseLong(m.group(1).replaceAll(",", "")); return amount; }
Mit diesen Anpassungen sollte der Java-Code in der Lage sein, die Suchergebnismenge erfolgreich von Google abzurufen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung 403 Forbidden, wenn ich mit Java eine Verbindung zu Google herstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!