私は、オープンソース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を使用し、応答から必要なものを選択することになります。
除外された例外処理:
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 を使用します。プロジェクトには、sslを使用できるcontribクラスがあります。
私たちはそれを使用しており、うまく機能しています。
編集:これは SSLガイド です
jsoup ライブラリは、HTMLのスクレイピングおよび解析の最初のステップとしてURLを取得します。
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
ネットワークプロトコルについては、 Apache Commons Net を試してください。自由!
Commons Netで提供される機能よりも多くの機能が必要な場合は、Apacheプロジェクトの[ http://hc.Apache.org/](HTTP Components)を試すこともできます。
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;
}