Java中的cURL等价物

时间:2010-01-28 17:13:11

标签: java curl

我有

exec(
  "curl".
  " --cert $this->_cCertifikatZPKomunikace".
  " --cacert $this->_cCertifikatPortalCA".
  " --data \"request=".urlencode($fc_xml)."\"".
  " --output $lc_filename_stdout".
  " $this->_cPortalURL".
  " 2>$lc_filename_stderr",
  $la_dummy,$ln_RetCode
);
在PHP中

我必须通过java来做。你能救我吗?

感谢Jakub

6 个答案:

答案 0 :(得分:14)

我使用HttpClient方法:

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
像这样:

HttpClient client = new HttpClient();
HttpMethod method = new GetMethod("http://www.google.com");
int responseCode = client.executeMethod(method);
if (responseCode != 200) {
    throw new HttpException("HttpMethod Returned Status Code: " + responseCode + " when attempting: " + url);
}
String rtn = StringEscapeUtils.unescapeHtml(method.getResponseBodyAsString());
编辑:哎呀。 StringEscapeUtils来自commons-lang。 http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html

答案 1 :(得分:3)

看看URLConnection。 Sun有一些examples。它有各种子类,支持一些特定的HTTP和HTTPS功能。

答案 2 :(得分:2)

除了Quotidian和Yacoby的纯Java答案之外,你可以尝试像在php中一样执行curl二进制文件。查看如何使用ProcessBuilder类。

答案 3 :(得分:2)

您可以使用Runtime拨打getRuntime()

来执行Java命令

链接到运行时的javadoc

Here's使用Runtime的一个很好的例子。

Here's使用Runtime或ProcessBuilder的一个不错的例子。

我希望其中一些有用。

答案 4 :(得分:2)

cURL网站链接到Github上的Java Bindings

答案 5 :(得分:1)

您可以在Java中使用HtmlUnit API

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
像这样:

WebClient webClient = new WebClient();
HtmlPage homePage = webClient.getPage("http://www.google.com");
String homePageString = homePage.asXml();