我是Java的新手,想在Java中使用curl。我的问题是Java内置的curl或我必须从任何第三方资源安装它才能与Java一起使用。如果是这样,如何在java中安装curl。我已经搜寻了很长时间,但没有找到任何帮助。希望有人能帮助我。
提前致谢。
我是Java的新手,想在Java中使用curl。我的问题是Java内置的curl或我必须从任何第三方资源安装它才能与Java一起使用。如果是这样,如何在java中安装curl。我已经搜寻了很长时间,但没有找到任何帮助。希望有人能帮助我。
提前致谢。
Answers:
您可以使用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:我都做,所以我从经验上讲。
有人已经提到HttpURLConnection,URL和URLConnection。如果您需要curl库提供的所有控件和其他功能(以及更多功能),建议您使用Apache的httpclient。
我建议使用标准的Java库,查看HttpUrlConnection类 http://java.sun.com/javase/6/docs/api/java/net/HttpURLConnection.html
它可以处理卷曲和建立连接所做的大部分工作。您可以根据自己的意愿来处理流。
Curl是非Java程序,必须在Java程序之外提供。
您可以使用Jakarta Commons Net轻松获得许多功能,除非您需要某些特定功能(如“简历传送”)(这很麻烦自己编写代码)
使用运行时调用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);
}