java - 测试 url 连接 java html

标签 java html url testing connection

当我测试 url 列表以查看连接是“有效”还是“无效”时,我遇到了这个站点:(www.abbapregnancy.org) 然后该站点是空白的,没有任何信息。我怎样才能做一个 if 语句来测试这样的网站?随时发表评论或提出想法。我的代码目前是这样的:

try
                    {// Test URL Connection
                    URL url = new URL("http://www."+line);
                    URLConnection conn = url.openConnection();
                    conn.setDoOutput(true);
                    wr = new OutputStreamWriter(conn.getOutputStream());
                    wr.flush();

                    rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

                    while( !rd.ready() ) {}

                    if( rd.ready())
                    {   
                        //write to output file
                        System.out.println("Good URL: " + line);
                        urlAlive ++;
                        //increment alive line to Alive url file
                        aliveUrl += (line + System.getProperty("line.separator"));                                                          
                    }
                    else // increment dead url 
                        urlDead++;
                    }
                    catch (Exception e) 
                    // increment dead url 
                        {
                            urlDead++;
                        }

最佳答案

所以你要检查的不仅仅是“活着”或“死了”。如果活着,你也想知道内容是否为空,对吧?

由于您似乎想要检查网站,因此在这里使用 http 连接很有意义。对于存活/死亡条件,连接尝试将在死亡时抛出异常。如果还活着,你可以使用状态码来检查请求是否真的成功了。最后,您可以使用 content-length header 来检查站点是否正常运行但实际上返回空内容。例如像这样:

public void checkURL(URL url) throws IOException {
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("GET");
    System.out.println(String.format("Fetching %s ...", url));
    try {
        int responseCode = conn.getResponseCode();
        if (responseCode == 200) {
            System.out.println(String.format("Site is up, content length = %s", conn.getHeaderField("content-length")));
        } else {
            System.out.println(String.format("Site is up, but returns non-ok status = %d", responseCode));
        }
    } catch (java.net.UnknownHostException e) {
        System.out.println("Site is down");
    }
}

关于java - 测试 url 连接 java html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249679/

相关文章:

java - log4j:在文件中写入日志语句时出错

java - Android:TextView 中的圆半径始终由 TextView 宽度和高度固定

html - 图像悬停时不会发生 CSS 过滤器灰色

javascript - 无法将动态加载的文本区域转换为 ckeditor

php - 如何获取上传到 FTP 服务器的文件的 HTTP URL

java - Spring 启动 : Overriding CacheManager bean makes cache related properties not work

java - 编辑外部存储中的文件

javascript - 我想使用 JS onclick 方法从同一文档获取 url

node.js - 在 expressjs 中更改 res.redirect 上的 url

c# - 带有 '@'(在符号处)的 HttpClient 访问 url