我想在Java中使用curl。Java内置了curl吗?还是我需要从第三方来源安装它以便在Java中使用?如果需要单独安装,如何安装?
我想在Java中使用curl。Java内置了curl吗?还是我需要从第三方来源安装它以便在Java中使用?如果需要单独安装,如何安装?
您可以利用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解析器。不,不要使用正则表达式。”。
URLConnection
完成所有操作,但您需要了解和理解HTTP规范。顺便说一下,不要试图将PHP与Java进行比较。这就像比较苹果和橙子。为避免自己的麻烦/困惑,最好忘记PHP,用全新的眼光看待Java。它是一种具有完全不同思想的语言。 PS:我都会,因此我从经验上告诉您。 - BalusC有些人已经提到了HttpURLConnection、URL和URLConnection。如果您需要所有curl库提供的控制和额外功能(以及更多),我建议使用Apache的httpclient。
Runtime对象允许您从Java执行外部命令行应用程序,因此可以使用cURL,但正如其他答案所指出的那样,可能有更好的方法来实现您想要的功能。如果您只想下载文件,则URL对象将非常适合。
Curl是一个非Java程序,必须在Java程序之外提供。
您可以使用Jakarta Commons Net轻松获得大部分功能,除非您需要一些特定的功能,如“恢复传输”(这在自己编写时很繁琐)。
使用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);
}
code
String[] commands = {"curl", "-X", "GET", "http://checkip.amazonaws.com"}; code
- ricwambugu