РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1108 of 1163 menu

Метод PUT

Метод PUT класса HttpRequest создает билдер HTTP запроса с методом PUT. Метод PUT используется для полной замены ресурса на сервере. В отличие от POST, который создает новый ресурс, PUT заменяет существующий ресурс целиком. Метод возвращает объект HttpRequest.Builder, у которого можно дополнительно настроить URI, заголовки, тело запроса и таймаут.

Тело запроса для метода PUT обычно задается с помощью класса HttpRequest.BodyPublishers. Отправка запроса выполняется через метод send класса HttpClient.

Синтаксис

HttpRequest.Builder builder = HttpRequest.PUT(bodyPublisher)

Пример

Создадим PUT запрос с телом в виде строки и отправим его на сервер:

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.newHttpClient(); HttpRequest request = HttpRequest .PUT(HttpRequest.BodyPublishers.ofString("new data")) .uri(URI.create("https://example.com/api/resource/1")) .header("Content-Type", "text/plain") .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString() ); System.out.println(response.statusCode()); System.out.println(response.body()); } }

Результат выполнения кода:

200 "updated"

Пример

Создадим PUT запрос с телом в виде файла и отправим его асинхронно:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.file.Path; import java.util.concurrent.CompletableFuture; public class Main { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest .PUT(HttpRequest.BodyPublishers.ofFile( Path.of("data.txt") )) .uri(URI.create("https://example.com/api/upload")) .header("Content-Type", "application/octet-stream") .build(); CompletableFuture<HttpResponse<String>> future = client.sendAsync( request, HttpResponse.BodyHandlers.ofString() ); HttpResponse<String> response = future.get(); System.out.println(response.statusCode()); } }

Результат выполнения кода:

201

Пример

Создадим PUT запрос без тела с помощью noBody и отправим его на сервер:

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.newHttpClient(); HttpRequest request = HttpRequest .PUT(HttpRequest.BodyPublishers.noBody()) .uri(URI.create("https://example.com/api/resource/1")) .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString() ); System.out.println(response.statusCode()); System.out.println(response.uri()); } }

Результат выполнения кода:

204 "https://example.com/api/resource/1"

Смотрите также

  • класс HttpRequest,
    который представляет HTTP запрос
  • метод POST,
    который создает POST запрос
  • метод GET,
    который создает GET запрос
  • метод send,
    который отправляет HTTP запрос
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить