java - java中如何仅从服务器获取网页的头部

标签 java http

有没有什么方法可以只从服务器获取网页的头部部分,而不需要下载整个文档?虽然 HTTP header 中有 Range 选项,但并非所有服务器都支持它。而且每个网页的头部大小并不相同

最佳答案

您可以创建 InputStream到您要解析的网站。然后使用 BufferedInputStream ,并手动解析内容。如果您认为已完成(例如达到 </head> ),您可以关闭流。这样您就不必下载所有 HTML 内容。

代码:

InputStream is = new URL("http://www.website.com/").openStream();
BufferedInputStream bis = new BufferedInputStream(is);
Reader rdr = new InputStreamReader(bis);

boolean finished = false;
while(! finished) {
    String line = rdr.readLine();
    if (line.indexOf("</head>") >= 0) {
        finished = true;
    } else {
         // parse or save the header
    }
}
bis.close();

关于java - java中如何仅从服务器获取网页的头部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284396/

相关文章:

php - 对 HTTP Post 请求采取操作

http - bower 使用 http 而不是 https

java - 临时表错误

java - 非负值与 -1 的比较错误

java - 泛型:在集合中添加子类对象的问题

http - 在 http 上打洞

java - Android - Viewmodel 变大

java - 找不到类 : org. junit.tests.AllTests - UBUNTU/LINUX

http - 如何有效解决 'Max Out'并发HTTP请求?

javascript - 读取远程文件,并输出到浏览器。处理文本和 html。不要使用图像。 NodeJs