gpt4 book ai didi

java - 在从 Java 中的 URL 读取内容之前等到页面加载完毕

转载 作者:搜寻专家 更新时间:2023-11-01 00:52:36 26 4
gpt4 key购买 nike

我正在从我的 java 代码中的 url 读取,但我想读取的页面在加载时执行命令,并且 InputStreamReader 在页面完全加载之前读取该页面,因此我的缓冲阅读器仅在页面上收集 HTML真正的内容被加载。

我的主要目标是在页面上找到“销售”一词,但如果在加载整个页面之前连接打开的流,我将无法执行此操作。有没有办法等待它加载或什么的?

这是我的代码:

URL url = new URL("http://urlgoeshere.com?"+ withAParam);
URLConnection uc = url.openConnection();
uc.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String inputLine = in.readLine();
int index = -1;
while ((inputLine = in.readLine()) != null){
index=inputLine.toLowerCase().indexOf("sales");
if(index>=0){
log.info("Found sales!");
break;
}
}
if (in != null){
in.close();
}

最佳答案

现在先介绍一些不能解决您的问题的 Java 编码技巧,然后再介绍可能会解决的技巧。

您应该重构您的代码并使用 try-finally 在 finally block 中关闭流以确保它始终关闭,即使在抛出异常时也是如此。然后我不会将 indexOf 与 int 一起使用。为了使代码更清晰、更易读且更简洁,请编写 if(inputLine.toLowerCase().contains("sales")){直接在您的 if 语句中删除所有索引代码。

您可以试试 apache API http://hc.apache.org/httpcomponents-client-ga/index.html获取主页。

关于java - 在从 Java 中的 URL 读取内容之前等到页面加载完毕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340243/

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