152

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

4

4 に答える 4

232

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");
      try (BufferedReader reader = new BufferedReader(
                  new InputStreamReader(conn.getInputStream()))) {
          for (String line; (line = reader.readLine()) != null; ) {
              result.append(line);
          }
      }
      return result.toString();
   }

   public static void main(String[] args) throws Exception
   {
     System.out.println(getHTML(args[0]));
   }
}
于 2009-09-28T06:46:47.227 に答える
59

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

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();

これがより完全な例です。

于 2009-09-28T06:40:45.380 に答える
41

外部ライブラリを使用したくない場合は、標準のJavaAPIの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
于 2009-09-28T06:48:40.340 に答える
9

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

于 2009-09-28T06:47:01.593 に答える