从我的Java程序访问URL时出现HTTP 503错误

时间:2010-01-14 07:12:42

标签: java url java-ee

我正在构建一个Java应用程序,它将从网站下载HTML页面并将文件保存在我的本地系统中。我可以通过浏览器手动访问网页的URL。但是当我尝试在我的Java程序中访问相同的URL时,服务器返回503错误。这是场景:

  

示例网址= http://content.somesite.com/demo/somepage.asp

能够通过浏览器访问上述URL。但是下面的Java代码无法下载页面:

StringBuffer data = new StringBuffer();
BufferedReader br = null;
try {
    br = new BufferedReader(new InputStreamReader(sourceUrl.openStream()));
    String inputLine = "";
    while ((inputLine = br.readLine()) != null) {
        data.append(inputLine);
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    br.close();
}

所以,我的问题是:

  1. 我在这里做错了吗?

  2. 服务器是否有办法阻止来自程序/漫游器的请求,只允许来自浏览器的请求?

1 个答案:

答案 0 :(得分:3)

您可能需要尝试将User-AgentReferer HTTP标头设置为普通网络浏览器发送的内容。

您可以从此列表中选择用户代理字符串:Seehowitruns: User-agent strings

此外,如果您请求的页面是内部页面,则它可能还取决于在上一页中生成的cookie。