在几行java代码中读取url到字符串

新手上路,请多包涵

我正在尝试找到与 Groovy 等效的 Java:

 String content = "http://www.google.com".toURL().getText();

我想将 URL 中的内容读入字符串。对于这样一个简单的任务,我不想用缓冲流和循环污染我的代码。我查看了 apache 的 HttpClient 但我也没有看到一两行实现。

原文由 Pomponius 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 371
1 个回答

现在自最初的答案被接受以来已经过去了一段时间,有一个更好的方法:

 String out = new Scanner(new URL("http://www.google.com").openStream(), "UTF-8").useDelimiter("\\A").next();

如果你想要一个稍微完整的实现,而不是一行,请执行以下操作:

 public static String readStringFromURL(String requestURL) throws IOException
{
    try (Scanner scanner = new Scanner(new URL(requestURL).openStream(),
            StandardCharsets.UTF_8.toString()))
    {
        scanner.useDelimiter("\\A");
        return scanner.hasNext() ? scanner.next() : "";
    }
}

原文由 ccleve 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题