如何在Java中使用cURL?

时间:2010-04-06 17:37:18

标签: java curl

我是java的新手,想在java中使用curl。我的问题是我在java中内置的curl,或者我必须从任何第三方源安装它以与Java一起使用。如果是这样,如何在java中安装curl。我已经谷歌搜索了很长时间,但没有找到任何帮助。希望任何人都可以帮助我。

提前致谢。

6 个答案:

答案 0 :(得分:131)

您可以使用java.net.URL和/或java.net.URLConnection

URL url = new URL("http://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's simple tutorial。但它有点冗长。为了减少冗长的代码,您可能需要考虑使用Apache HttpClient

顺便说一下:如果你的下一个问题是“如何处理HTML结果?”,那么答案就是“Use a HTML parserNo, don't use regex for this。”。

另见:

答案 1 :(得分:4)

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

答案 2 :(得分:3)

Runtime对象允许您从Java执行外部命令行应用程序,因此允许您使用cURL,但是其他答案表明可能有更好的方法来执行您尝试执行的操作。如果您只想下载文件,那么URL对象将会运行得很好。

答案 3 :(得分:2)

使用标准的java库,我建议查看HttpUrlConnection类 http://java.sun.com/javase/6/docs/api/java/net/HttpURLConnection.html

它可以处理curl在设置连接时可以做的大部分工作。 你对流做什么取决于你。

答案 4 :(得分:2)

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

您可以使用Jakarta Commons Net轻松获取大部分功能,除非您需要一些特定的功能,例如“恢复传输”(这对您自己的代码来说很繁琐)

答案 5 :(得分:2)

使用enter image description here来调用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);
}