Java获取网页源或者超时

标签 java web web-scraping

我正在尝试从网页获取数据,但如果该页面不可用,程序将运行很长时间直到超时。我需要它尝试获取网页 10 秒,如果在这段时间内没有得到响应,则返回 null。请问我怎样才能让它这样工作?

这是我获取数据的方式:

public int getThreadData( String address ) throws IOException{
    String valueString = null;
    URL url = new URL( "http://" + address + ":8080/web-console/ServerInfo.jsp" );
    URLConnection urlConnection = url.openConnection();
    urlConnection.setRequestProperty( "User-Agent",
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) 
         Gecko/20100401" );
    BufferedReader br = new BufferedReader( new InputStreamReader
        ( urlConnection.getInputStream(), "UTF-8" ) );

    String inputLine;

    while ( ( inputLine = br.readLine() ) != null )
    {
        if ( inputLine.contains( "#Threads" ) )
        {
            valueString = inputLine.substring( inputLine.indexOf( "/b>" ) + 3 );
            valueString = valueString.substring( 0, valueString.indexOf( "<" ) );
        }
    }
    br.close();

    return Integer.parseInt( valueString );

}

最佳答案

您是否尝试过如下设置连接超时:

urlConnection.setConnectTimeout(10000); // 10000 milliseconds

关于Java获取网页源或者超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16333919/

相关文章:

java - Spring REST Controller 中具有 @manytoone 关系的 POST 方法

javascript - Puppeteer:从网站获取 localStorage

python - urllib2 不返回完整网页

javascript - 网站youtube内嵌视频一直在播放

android - 在 iphone/android 上自动缩放网页,使文本框水平填充屏幕

php - 网页刷新,mysql更新

xml - readHTMLTable 和 UTF-8 编码

用于图像处理掩蔽任务的 Java 库

java - 如何使用java从二维数组中获取特定列

java - 在 verticle vert.x 中实例化类的危险