JavaでHTTP GETを行うにはどうすればよいですか?
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]));
}
}
技術的には、ストレート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();
そして、ここにもっとあります 完全な例 。
外部ライブラリを使用したくない場合は、標準Java APIのURLクラスとURLConnectionクラスを使用できます。
例は次のようになります。
String urlString = "http://wherever.com/someAction?param1=value1¶m2=value2....";
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
// Do what you want with that stream
URL オブジェクトを作成し、その上で openConnection または openStream を呼び出すために、サードパーティのライブラリを必要としない最も簡単な方法。これは非常に基本的なAPIであるため、ヘッダーをあまり制御できないことに注意してください。