43

我的任务是为开源JAVA应用程序编写身份验证组件。我们有一个内部身份验证小部件,它使用https. 我有一些示例php代码可以访问widget用于cURL处理传输的。

我的问题是是否有cURLto的端口JAVA,或者更好的是,什么基础包能让我足够接近来处理任务?

更新

简而言之,我想在 JAVA 中复制的代码:

$cp = curl_init();
$my_url = "https://" . AUTH_SERVER . "/auth/authenticate.asp?pt1=$uname&pt2=$pass&pt4=full";
curl_setopt($cp, CURLOPT_URL, $my_url);
curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($cp);
curl_close($cp);

Heath,我认为您走在正确的轨道上,我想我最终将使用 HttpsURLConnection ,然后从响应中挑选出我需要的东西。

4

6 回答 6

63

省略异常处理:

HttpURLConnection con = (HttpURLConnection) new URL("https://www.example.com").openConnection();
con.setRequestMethod("POST");
con.getOutputStream().write("LOGIN".getBytes("UTF-8"));
con.getInputStream();
于 2008-09-22T18:48:05.897 回答
23

我会使用Commons Http Client。项目中有一个contrib类可以让你使用ssl。

我们正在使用它,它运行良好。

编辑:这是SSL 指南

于 2008-09-22T18:58:41.223 回答
4

jsoup库获取 URL 作为其 HTML 抓取和解析任务的第一步。

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
于 2014-03-16T23:01:40.753 回答
1

尝试使用Apache Commons Net获取网络协议。自由!

于 2008-09-22T18:38:25.077 回答
1

如果您需要比通过 Commons Net 提供的功能更多的功能,您也可以尝试 Apache 项目中的 [ http://hc.apache.org/](HTTP Components)。

于 2008-09-22T18:44:13.877 回答
0

您可以尝试 curl-to-java lib 将 curl php 代码转换为 java 代码https://github.com/jeffreyning/curl-to-java演示像这样

public Object curl(String url, Object postData, String method) {

CurlLib curl = CurlFactory.getInstance("default");
ch = curl.curl_init();
curl.curl_setopt(ch, CurlOption.CURLOPT_CONNECTTIMEOUT, 1000);
curl.curl_setopt(ch, CurlOption.CURLOPT_TIMEOUT, 5000);
curl.curl_setopt(ch, CurlOption.CURLOPT_SSL_VERIFYPEER, false);
curl.curl_setopt(ch, CurlOption.CURLOPT_SSL_VERIFYHOST, false);
String postDataStr = "key1=v1";

curl.curl_setopt(ch, CurlOption.CURLOPT_CUSTOMREQUEST, "POST");
curl.curl_setopt(ch, CurlOption.CURLOPT_POSTFIELDS, postDataStr);
curl.curl_setopt(ch, CurlOption.CURLOPT_URL, "https://xxxx.com/yyy");
Object html = curl.curl_exec(ch);
Object httpCode = curl.curl_getinfo(ch, CurlInfo.CURLINFO_HTTP_CODE);
if (httpCode != null && 200 == Integer.valueOf(httpCode.toString())) {
    return null;
}
return html;
}
于 2019-08-02T07:22:34.533 回答