Параметры адреса в Java
После знака "?" в адресе идут пары
"имя=значение", разделенные "&".
Их называют параметрами строки запроса. Клиент
передает их как часть URI, без отдельного
API.
Метод URI.create принимает полную строку
адреса. Сервис "/get" возвращает параметры
в теле, так что их легко проверить:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder().build();
URI address = URI.create(
"https://httpbin.org/get?item=pen",
);
HttpRequest request = HttpRequest.newBuilder()
.uri(address)
.GET()
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
);
System.out.println(response.body());
}
}
Несколько параметров пишут в одной строке через
"&". Пробелы и спецсимволы кодируют по
правилам URI, иначе адрес может быть отклонен:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder().build();
URI address = URI.create(
"https://httpbin.org/get?item=pen&color=blue",
);
HttpRequest request = HttpRequest.newBuilder()
.uri(address)
.GET()
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString(),
);
System.out.println(response.body());
}
}
Выведите тело ответа для
"https://httpbin.org/get?city=omsk".
Отправьте чтение с параметрами "page"
равным "2" и "lang" равным
"ru" на "/get". Напечатайте
полное тело ответа.