gpt4 book ai didi

Java URL - Google 翻译请求返回 403 错误?

转载 作者:可可西里 更新时间:2023-11-01 16:27:15 26 4
gpt4 key购买 nike

<分区>

我正在制作一个 Java 控制台应用程序,它需要向 Google 翻译发送 HTTP 请求以从上述网站获取翻译。

我的问题是,当我尝试使用 openStream() 读取有效 URL 时收到 403 错误.

Translator t = new Translator(); 创建这个 Translator 类的实例并调用 t.translate("en", "ja", "cheese"); ,例如,应该返回程序在页面 http://translate.google.com/#en|ja|cheese 上找到的翻译,看起来,但它捕获了一个 IOException 并返回了这个:

http://translate.google.com/#en|ja|cheese
Server returned HTTP response code: 403 for URL: <a href="http://translate.google.com/#en|ja|cheese" rel="noreferrer noopener nofollow">http://translate.google.com/#en|ja|cheese</a>

创建有效 Google 翻译 URL 的任何其他参数都会出现类似的错误。

A 403 error显然意味着我被拒绝许可。这就是我想知道的。为什么我无法访问此页面,我必须做什么才能访问它?

我已经在我的网络浏览器中访问了该站点,并手动输入了我的程序尝试访问的地址,但它有效;我不确定为什么我的程序因此无法访问该页面?将地址键入或复制/粘贴到我的 FireFox 导航栏中即可;看,如果this是正确的,那么该站点可能希望我通过另一个页面上的链接访问该页面?如果那是我必须做的,我该怎么做?

这是代码,我认为它可能有帮助。当我尝试从 translationURL.openStream() 返回的 InputStream 中的 InputStreamReader 创建 BufferedReader 时,似乎抛出了异常。 :

import java.io.*;
import java.net.*;

public class Translator {

private final String googleTranslate = "http://translate.google.com/#";

public String translate( String from, String to, String item ) {

String translation = googleTranslate + from + '|' + to + '|' + item;
URL translationURL;

try { translationURL = new URL(translation); }
catch(MalformedURLException e) { return e.getMessage(); }

BufferedReader httpin;
String fullPage = "";
System.out.println(translation);
try {
httpin = new BufferedReader(
new InputStreamReader(translationURL.openStream()));
String line;
while((line=httpin.readLine()) != null) { fullPage += line + '\n'; }
httpin.close();
} catch(IOException e) { return e.getMessage(); }

int begin = fullPage.indexOf("<span class=\"\">");
int end = fullPage.indexOf("</span>");

return fullPage.substring(begin + 15, end);

}

public Translator() {}
}

我正在 Ubuntu Linux 11.04 上的 Eclipse (GALILEO) 中测试此代码,安装了五笔,具有工作可靠的无线互联网连接。我也试过在命令行中运行它,但行为是一样的。 java -version给我这个:

java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com