url.openStream()dos不适用于某些网页

时间:2017-01-21 07:34:28

标签: java http url java-ee

我有一段代码来阅读网页内容,这段代码适用于很多页面但不适用于某些页面,如下面的链接:

http://www.sciencedirect.com/science/article/pii/S1351421012701725?np=y

public static String getDataFromWebPage(String url) {
    try {
        URL urlpage = new URL(url);
        InputStream is = urlpage.openStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String line = "";
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
        br.close();
        is.close();
    } catch (Exception e) {
        e.printStackTrace();
        return "";
    }
}


public static void main(String[] args) {
    System.out.println("*******************************");
    System.out.println("*******************************");
    System.out.println(getDataFromWebPage("http://www.sciencedirect.com/science/article/pii/S1351421012701725?np=y"));

    System.out.println("*******************************");
    System.out.println("*******************************");

}

需要很多时间,但输出中没有任何结果(或任何异常)。

服务器是否可能有一些算法不响应机器人的请求?

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你应该使用httpclient istead。你会在这里找到一个很好的例子:http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/