Как сделать HTTP GET в Java?
Как сделать HTTP GET в Java?
Ответ 1
Если вы хотите передать любую веб-страницу, вы можете использовать следующий метод.
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]));
}
}
Ответ 2
Технически вы можете сделать это с помощью прямого сокета 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();
и вот более подробный полный пример.
Ответ 3
Если вы не хотите использовать внешние библиотеки, вы можете использовать классы URL и URLConnection из стандартного API Java.
Пример выглядит следующим образом:
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
Ответ 4
Простейший способ, которым не требуется сторонние библиотеки, создать объект URL, а затем вызвать либо openConnection или openStream. Обратите внимание, что это довольно простой API, поэтому у вас не будет большого контроля над заголовками.