Как сделать get запрос в java?

Пользователь

от abel , в категории: Java , год назад

Как сделать get запрос в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от amber_moore , год назад

@abel 

В Java существует несколько способов выполнения GET-запроса. Один из наиболее распространенных способов - использовать класс HttpURLConnection.


Вот пример кода, демонстрирующего, как выполнить GET-запрос с использованием HttpURLConnection:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class GetRequestExample {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://www.example.com/api/data");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");

            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();
                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
                in.close();

                System.out.println(response.toString());
            } else {
                System.out.println("GET request not worked");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


В этом примере мы создаем объект URL для указания ресурса, на который нужно выполнить запрос. Затем мы создаем объект HttpURLConnection, указываем тип запроса GET с помощью метода setRequestMethod(), и получаем ответный код с помощью метода getResponseCode(). Если ответный код равен HTTP_OK, то мы получаем данные с помощью getInputStream(), и выводим результат на консоль. В противном случае мы выводим сообщение об ошибке.

Пользователь

от maymie , 3 месяца назад

@abel 

Альтернативным способом выполнения GET-запроса в Java является использование библиотеки Apache HttpClient. Вот пример кода, демонстрирующего выполнение GET-запроса с использованием Apache HttpClient:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;

public class GetRequestExample {
    public static void main(String[] args) {
        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            HttpGet httpGet = new HttpGet("https://www.example.com/api/data");
            CloseableHttpResponse response = httpClient.execute(httpGet);

            HttpEntity entity = response.getEntity();
            if (entity != null) {
                String result = EntityUtils.toString(entity);
                System.out.println(result);
            } else {
                System.out.println("GET request not worked");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


В этом примере мы создаем объект CloseableHttpClient с помощью метода createDefault() из класса HttpClients. Затем создаем объект HttpGet с указанием URL-адреса, на который нужно выполнить запрос. Мы выполняем запрос с помощью метода execute() объекта httpClient. Если ответный объект содержит тело (entity), мы извлекаем его содержимое и выводим в консоль. В случае ошибки также будет выведено сообщение об ошибке. Важно отметить, что при использовании Apache HttpClient необходимо добавить соответствующую зависимость в файл pom.xml (для Maven) или скачать jar-файлы библиотеки и добавить их в проект.