可以从合法的URL的HTML内容不读(Can't read in HTML content

2019-09-30 05:56发布

我想了一个简单的程序,用于读取一个给定的URL的HTML内容。 我想在这种情况下,URL不需要任何的Cookie /用户名/密码,但还是我得到一个io.IOException:服务器返回的HTTP响应代码:403错误。 谁能告诉我,我究竟做错了什么? (我知道在如此相似的问题,但他们并没有帮助):

    import java.net.*;
import java.io.*;
import java.net.MalformedURLException;
import java.io.IOException;
public class urlcont {
public static void main(String[] args) {
try {
  URL u = new URL("http://www.amnesty.org/");
  URLConnection uc = u.openConnection();
  uc.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
  uc.connect();
  InputStream in = uc.getInputStream();
  int b;
  File f = new File("C:\\Users\\kausta\\Desktop\\urlcont.txt");
  f.createNewFile();
  OutputStream s = new FileOutputStream(f);
  while ((b = in.read()) != -1) {
    s.write(b);
  }
}
catch (MalformedURLException e) {System.err.println(e);}
catch (IOException e) {System.err.println(e);} 
}
}

Answer 1:

如果你可以获取通过Java,指示,对我来说,他们是通过阻止用户代理过滤程序访问该页面在浏览器的URL,而不是。 请尝试设置连接上的用户代理,这样出现在你的代码,到web服务器,是一个网络浏览器。

看到这个线程上的帮助: 什么是一个URLConnection设置页眉的正确方法?



Answer 2:

有一个权限问题:

一个Web服务器可以响应来自客户端返回一个403禁止HTTP状态代码的请求一个网页或资源,以表明服务器拒绝允许请求的操作



Answer 3:

你是不是做什么“错误”,您试图访问服务器阻止你的要求,因为你不能访问该文件

HTTP的错误403装置禁止 - >远程服务器块的请求。

检查你是否需要给认证访问你想在这种情况下,它提供请求的文档;)



文章来源: Can't read in HTML content from valid URL