1

我对这个请求到底发生了什么感到有点困惑。正如您通过使用标准浏览器单击链接所看到的那样,项目图像显示正常,并带有 200 响应代码。(这可以通过在大多数浏览器的网络部分打开开发人员工具来看到。)但是,我编写了一个脚本,它将使用标准 Java 类对响应代码的 URL 执行 ping 操作,并且我得到了 403 Forbidden 响应代码:

static public void main(String[] args) throws IOException
{
    URL my_url = new URL("http://www.gessi.it/static/images/products/zoom/01410.png");

    URLConnection u = my_url.openConnection();

    if (u instanceof HttpURLConnection)
    {
        HttpURLConnection http_u = (HttpURLConnection) u;

        System.out.println("Response code: " + http_u.getResponseCode());
        System.out.println("Response message: " + http_u.getResponseMessage());
    }
}

有谁知道为什么脚本会收到禁止代码,而标准浏览器可以正常查看图像?过去,我看到我的脚本无法获取一些图像,因为 Java 本身无法处理复杂的 302 重定向等,但在这种情况下没有。

4

1 回答 1

2
http_u.setRequestProperty("User-Agent", "Mozilla 9.10");

服务器查找 User-Agent 请求标头,因此它不需要为爬虫、收割机等服务。

于 2013-02-26T16:58:43.973 回答