web-dev-qa-db-ja.com

JavaでHTTP GETを行うにはどうすればよいですか?

JavaでHTTP GETを行うにはどうすればよいですか?

132
David

Webページをストリーミングする場合は、以下の方法を使用できます。

import Java.io.*;
import Java.net.*;

public class c {

   public static String getHTML(String urlToRead) throws Exception {
      StringBuilder result = new StringBuilder();
      URL url = new URL(urlToRead);
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod("GET");
      BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
      String line;
      while ((line = rd.readLine()) != null) {
         result.append(line);
      }
      rd.close();
      return result.toString();
   }

   public static void main(String[] args) throws Exception
   {
     System.out.println(getHTML(args[0]));
   }
}
194
Kalpak

技術的には、ストレートTCPソケットで実行できます。ただし、お勧めしません。代わりに Apache HttpClient を使用することを強くお勧めします。 最も単純な形式

GetMethod get = new GetMethod("http://httpcomponents.Apache.org");
// execute method and handle any error responses.
...
InputStream in = get.getResponseBodyAsStream();
// Process the data from the input stream.
get.releaseConnection();

そして、ここにもっとあります 完全な例

54
cletus

外部ライブラリを使用したくない場合は、標準Java APIのURLクラスとURLConnectionクラスを使用できます。

例は次のようになります。

String urlString = "http://wherever.com/someAction?param1=value1&param2=value2....";
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
// Do what you want with that stream
35
HyLian

URL オブジェクトを作成し、その上で openConnection または openStream を呼び出すために、サードパーティのライブラリを必要としない最も簡単な方法。これは非常に基本的なAPIであるため、ヘッダーをあまり制御できないことに注意してください。

7