【问题标题】:Java Test URL Request TestJava 测试 URL 请求测试
【发布时间】:2013-11-22 04:32:43
【问题描述】:

您好,我是 java 和编程的新手,如果我在简单的事情上出错了,请原谅我。我的目标是导入一个文本文件,扫描每一行,如果读取了某些内容,则测试该行(这是一个 URL),然后将其打印到输出文件中。所以程序正在测试每个 URL,如果 URL 有效(工作),我将在新的输出文件中打印该行。

我的问题是测试 URL 部分。它读取该行,因此它将打印 URL,但它会多次打印任何建议?有没有办法让它打印一次?我想我理解它会打印多次,因为它会逐行读取 HTML 代码。

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();

    // Get the response
    rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    while((lines = rd.readLine()) != null)
    {
        System.out.println(line);
    }
}
catch(Exception e)
{
    System.out.println(e.toString());
}

【问题讨论】:

    标签: java html eclipse url request


    【解决方案1】:

    您的代码正在将行读入名为“lines”的变量中,但您正在打印行变量。 line 变量是您用来创建 URL 的变量:

    URL url = new URL("http://www."+line);
    

    如果您只想打印出 url,那么您可能需要考虑将 url 构造为这样的字符串:

    String targetUrl = String.format("http://www.%s", domainName);
    System.out.println(targetUrl);
    

    然后创建 URL 对象。

    URL url = new URL(targetUrl);
    

    如果您尝试打印从目标 URL 检索到的内容,请更改代码以打印“行”:

    System.out.println(lines); 
    

    使用更具描述性的变量名会更好。例如,不要使用“line”构建 URL,而是使用“domainName”之类的变量名称。然后,当你一次读一行时,你可以使用“line”这个变量名。

    // Assuming that domainName is set before the try block
    try
    {
        // Test URL Connection
        URL url = new URL("http://www."+domainName);
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.flush();
    
        String line = null;
    
        // Get the response
        rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        while ((line = rd.readLine()) != null) 
        {
            System.out.println(line);                       
        }
    }
    catch (Exception e) 
    {
        System.out.println(e.toString());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 2014-11-10
      • 2017-10-28
      相关资源
      最近更新 更多