如何在Java中使用cURL?

问题描述 投票:0回答:6

我想在java中使用curl。 curl 是 Java 内置的还是我必须从任何第 3 方源安装它才能与 Java 一起使用?如果需要单独安装怎么办?

java curl
6个回答
146
投票

您可以使用

java.net.URL
和/或
java.net.URLConnection

URL url = new URL("https://stackoverflow.com");

try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
    for (String line; (line = reader.readLine()) != null;) {
        System.out.println(line);
    }
}

另请参阅有关该主题的 Oracle 简单教程。不过,这有点冗长。为了得到更简洁的代码,您可能需要考虑使用 Apache HttpClient

顺便说一句:如果您的下一个问题是“如何处理 HTML 结果?”,那么答案是“使用 HTML 解析器不,不要使用正则表达式。”。

另请参阅:


5
投票

有些人已经提到了HttpURLConnectionURLURLConnection。如果您需要curl库为您提供的所有控制和额外功能(以及更多),我推荐Apache的httpclient



3
投票
使用标准 java 库,我建议查看 HttpUrlConnection 类

http://java.sun.com/javase/6/docs/api/java/net/HttpURLConnection.html

它可以处理curl 在设置连接方面可以做的大部分事情。 您对流的处理方式取决于您。


3
投票
Curl 是一个非 Java 程序,必须在 Java 程序之外提供。

您可以使用

Jakarta Commons Net 轻松获得大部分功能,除非您需要一些特定的功能,例如“恢复传输”(您自己编写代码很繁琐)


2
投票
使用

Runtime调用Curl。此代码适用于 Ubuntu 和 Windows。

String[] commands = new String[] {"curl", "-X", "GET", "http://checkip.amazonaws.com"}; Process process = Runtime.getRuntime().exec(commands); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; String response; while ((line = reader.readLine()) != null) { response.append(line); }
    
© www.soinside.com 2019 - 2024. All rights reserved.