web-dev-qa-db-ja.com

JavaでcURLを使用する方法は?

私はJavaの初心者で、Javaでcurlを使用したいと考えていました。私の質問はJavaに組み込まれているcurlか、Javaで使用するためにサードパーティのソースからインストールする必要があります。その場合、Javaでcurlをインストールする方法。私は長い間グーグルをしてきましたが、何の助けも見つかりませんでした。誰かが私を助けてくれることを願っています。

前もって感謝します。

85
moshfiqur

Java.net.URL および/または Java.net.URLConnection を使用できます。

URL url = new URL("http://stackoverflow.com");

try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
    for (String line; (line = reader.readLine()) != null;) {
        System.out.println(line);
    }
}

この件に関する Oracleの簡単なチュートリアル も参照してください。ただし、少し冗長です。冗長なコードを減らすには、代わりに Apache HttpClient を検討することをお勧めします。

ちなみに、次の質問が「HTML結果の処理方法」の場合、答えは「 HTMLパーサーを使用いいえ、これに正規表現を使用しないでください 」です。 =。 "。

こちらもご覧ください:

132
BalusC

一部の人々はすでに HttpURLConnectionURL および RLConnection について言及しています。 curlライブラリが提供する(およびそれ以上の)すべての制御と追加機能が必要な場合は、 Apacheのhttpclient をお勧めします。

4
Seth

Runtime オブジェクトを使用すると、Javaから外部コマンドラインアプリケーションを実行できます。したがって、cURLを使用できますが、他の答えはおそらくより良い方法があることを示していますやろうとしているファイルをダウンロードするだけであれば、URLオブジェクトは問題なく機能します。

3
mjh2007

標準のJavaライブラリを使用して、HttpUrlConnectionクラスを確認することをお勧めします http://Java.Sun.com/javase/6/docs/api/Java/net/HttpURLConnection.html

接続のセットアップでcurlができることのほとんどを処理できます。ストリームで何をするかはあなた次第です。

2
Stevko

Curlは非Javaプログラムであり、Javaプログラムの外部で提供する必要があります。

Jakarta Commons Net を使用すると、多くの機能を簡単に取得できます。ただし、必要な「転送の再開」などの特定の機能がない限り(これは自分でコードを作成するのは面倒です)