簡體   English   中英

相當於JAVA中的cURL

[英]cURL equivalent in JAVA

我的任務是為開源JAVA應用程序編寫身份驗證組件。 我們有一個使用https的內部身份驗證窗口小部件。 我有一些示例php代碼,可訪問使用cURL來處理傳輸的widget

我的問題是JAVA是否有cURL的端口,或者更好的是,什么基本軟件包將使我足夠接近以處理任務?

更新

簡而言之,我想在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);

荒地 ,我認為您的目標是正確的,我認為我最終將使用HttpsURLConnection,然后從響應中選擇所需的內容。

省略異常處理:

HttpURLConnection con = (HttpURLConnection) new URL("https://www.example.com").openConnection();
con.setRequestMethod("POST");
con.getOutputStream().write("LOGIN".getBytes("UTF-8"));
con.getInputStream();

我會使用Commons Http Client 項目中有一個contrib類,可讓您使用ssl。

我們正在使用它,並且運行良好。

編輯:這是SSL指南

so

jsoup庫獲取URL作為其HTML抓取和解析任務的第一步。

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();

嘗試使用Apache Commons Net獲取網絡協議。 自由!

如果您需要比Commons Net提供的功能更多的功能,也可以嘗試從Apache項目中嘗試[ http://hc.apache.org/](HTTP組件)。

您可以嘗試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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM