gpt4 book ai didi

Java:文件类型为 `url.openStream()`

转载 作者:行者123 更新时间:2023-12-02 04:18:32 26 4
gpt4 key购买 nike

我编写这个方法来下载给定 URL 的网页。它被设计为仅下载 HTML。如果我想进行错误检查并仅允许 HTML,我应该怎么做?

public static String download(URL url) throws IOException {
InputStream is = url.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String page = "";
String line;
while((line = reader.readLine()) != null){
page = page + line;
}
return page;
}

本来我打算这样做:

String file = url.getFile();
if(file.subString(file.indexOf("."),file.length()-1).equalsIgnoreCase("HTML")){
// do method

但是,URL:http://www.smu.com 会为 url.getFile() 返回 ""。有人有什么建议吗?

最佳答案

要测试是否正在获取 html,您可以使用 URL.openConnection() 获取 UrlConnection,然后调用 getContentType(),它应该返回 HTML 页面的“text/html”。然后,您可以使用 UrlConnection() 上的 getInputStream() 方法来替代 url.openStream();

如果您确实想要验证服务器发送给您的内容是否为 HTML,您需要找到一个 HTML 验证库。抱歉,我不知道有哪一个。

需要考虑的一点是,许多网站将根据 HTTP 连接上发送的用户代理字符串提供不同的数据,这可能就是 www.smu.com 不返回数据的原因。您可能需要在 UrlConnection 上修改它: UrlConnection.addRequestProperty("User-Agent", ...);在这里查看更多信息:Setting user agent of a java URLConnection

关于Java:文件类型为 `url.openStream()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com