web-dev-qa-db-ja.com

JAVAで同等のcURL

私は、オープンソースJavaアプリ用の認証コンポーネントを作成する仕事をしています。 httpsを使用する社内認証ウィジェットがあります。 phpを使用して転送を処理するwidgetにアクセスするcURLコードの例があります。

私の質問は、cURLから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を使用し、応答から必要なものを選択することになります。

43
JK.

除外された例外処理:

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

Commons Http Client を使用します。プロジェクトには、sslを使用できるcontribクラスがあります。

私たちはそれを使用しており、うまく機能しています。

編集:これは SSLガイド です

23
ScArcher2

スープ

jsoup ライブラリは、HTMLのスクレイピングおよび解析の最初のステップとしてURLを取得します。

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

ネットワークプロトコルについては、 Apache Commons Net を試してください。自由!

1
Jason Cohen

Commons Netで提供される機能よりも多くの機能が必要な場合は、Apacheプロジェクトの[ http://hc.Apache.org/](HTTP Components)を試すこともできます。

1
WMR

curl-to-Java libを試してcurl phpコードをJava code https://github.com/jeffreyning/curl-to-Java demo likeに変換できますこの

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;
}
0
jeffrey