【问题标题】:How to download file given url in java?如何在java中下载给定url的文件?
【发布时间】:2012-10-19 10:52:27
【问题描述】:

我想在java中使用通过这个链接下载的文件...

http://translate.google.com/translate_a/

如果你点击上面的链接,你会得到一个 json 格式的文件。我想用java代码获取这个文件。

我试过这个

String word = "Moon";

System.setProperty("http.proxyHost", "172.20.0.100");
System.setProperty("http.proxyPort", "8080");

URL url = new URL("http://translate.google.com/translate_a/t?client=t&text="+word+"&hl=en&sl=en&tl=hi&ie=UTF-8&oe=UTF-8&multires=1&otf=1&ssel=3&tsel=3&sc=1");
url.openConnection();
InputStream reader = url.openStream();
FileOutputStream writer = new FileOutputStream("t");
byte[] buffer = new byte[153600];
int bytesRead = 0;
while ((bytesRead = reader.read(buffer)) > 0)
{  
    writer.write(buffer, 0, bytesRead);
    buffer = new byte[153600];
}
writer.close();
reader.close();

错误

Exception in thread "main" java.io.IOException: Server returned HTTP response code:  403 for URL: http://translate.google.com/translate_a/…
at sun.net.www.protocol.http.HttpURLConnect…
at java.net.URL.openStream(URL.java:1031)
at smsMain.main(smsMain.java:19)

直接下载正在运行(只需单击并查看印地语中“月亮”一词的翻译),但通过程序显示错误!!!!为什么???

请在这方面提供帮助。 提前谢谢你!!!

【问题讨论】:

    标签: java file http url download


    【解决方案1】:

    您收到 403 是因为 Google 不希望您以这种方式使用该服务:http://en.wikipedia.org/wiki/HTTP_403

    如果您查看页面的内容,它会说:That’s an error. Your client does not have permission to get URL / from this server.

    要获得对 Google Translate API 的编程访问权限,您需要付费访问https://developers.google.com/translate/

    【讨论】:

    • OP 想知道为什么它可以从浏览器访问,但不能从 Java 应用程序访问。
    • 因为你必须 pay for access 到翻译 API
    • 但是如果你点击它..虽然它是一项付费服务​​,但它正在被下载!!!怎么???
    • 互联网的魔力。谷歌工程师通过浏览器免费提供服务,并以编程方式付费使用,并确保以这种方式访问​​它。您也许可以想办法解决它,但从技术上讲,您违反了法律。
    • 我从这里找到了 url rupeshpatel.wordpress.com/2012/06/23/… 没有检查是否工作...
    猜你喜欢
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    相关资源
    最近更新 更多