我是java的新手,想在java中使用curl。我的问题是我在java中内置的curl,或者我必须从任何第三方源安装它以与Java一起使用。如果是这样,如何在java中安装curl。我已经谷歌搜索了很长时间,但没有找到任何帮助。希望任何人都可以帮助我。
提前致谢。
答案 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 parser。No, don't use regex for this。”。
答案 1 :(得分:4)
有些人已经提到HttpURLConnection,URL和URLConnection。如果您需要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)
使用来调用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);
}