java - 如何在java中下载给定url的文件?

标签 java file http url download

我想在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)

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

请在这方面提供帮助。 预先感谢您!!!

最佳答案

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

如果您查看页面内容,它会显示:这是一个错误。您的客户端没有权限从该服务器获取 URL/。

要以编程方式访问 Google Translate API,您需要支付访问费用 https://developers.google.com/translate/

关于java - 如何在java中下载给定url的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13133243/

相关文章:

java - Android POST 请求未收到响应

java - SimpleDateFormat 周年

Java方法撤销算法

java - 文件按实际格式上传下载

c# - .NET HTTP 解析器

http - 逗号分隔的列表在 Content-Type header 中有效吗?

java - 使用 dom4j 在 xml 文档上添加元素

关闭文件句柄上的 Perl Readline - 文件不存在错误

c - 为什么在打印一行文件时光标会转到下一行?

ios - 使用 AFNetworking 2.0 对数据进行 PUT 请求