java - 如何使用 HttpClient 发送 DELETE 请求
问题描述
我怎样才能向这个发送http DELETE
请求
使用HttpClient
对象或类似的东西?
这是我的代码GET
和POST
请求:
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
//jsonGetRequest();
//jsonPostRequest();
}
public static void jsonGetRequest() throws IOException, InterruptedException {
final String URL = "https://vbzrei5wpf.execute-api.us-east-1.amazonaws.com/test/pets";
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest httpRequest = HttpRequest
.newBuilder()
.GET()
.header("accept", "application/json")
.uri(URI.create(URL))
.build();
HttpResponse<String> httpResponses = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString());
//System.out.println(httpResponses.body()); // stampa l'intero file JSON
// Parsing JSON into Objects
ObjectMapper objectMapper = new ObjectMapper();
List<Pet> pets = objectMapper.readValue(httpResponses.body(), new TypeReference<List<Pet>>() {
});
//pets.forEach(System.out::println); oppure
for (Pet pet : pets) {
System.out.println(pet.getId() + ", " + pet.getType() + ", " + pet.getPrice());
}
}
public static void jsonPostRequest() throws IOException, InterruptedException {
final String URL = "https://vbzrei5wpf.execute-api.us-east-1.amazonaws.com/test/pets";
final Map<String, Object> values = new HashMap<>();
values.put("type", "octopus");
values.put("price", 12.99);
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(values);
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest
.newBuilder()
.uri(URI.create(URL))
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = httpClient.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
public static void jsonDeleteRequest() {
final String URL = "https://vbzrei5wpf.execute-api.us-east-1.amazonaws.com/test/pets";
// TODO...
}
}
解决方案
请求的DELETE
发送方式与 相同GET
,只是使用“DELETE”方法而不是“GET”方法:
HttpRequest httpRequest = HttpRequest
.newBuilder()
.DELETE()
.uri(URI.create(URL))
.build();
推荐阅读
- android - 返回类型'列表
' 不是一个 'FutureOr - >>',根据闭包的上下文 Flutter 的要求
- python - xlwings 只读模式,打开文件
- cobol - Enterprise COBOL 是否支持 Free Format 源代码
- csv - 使用 OMNet++ 生成数据集
- r - 如何使用 ggplot 在条形图中重新排列/重新排序 Y 轴值
- node.js - HTTP 选项方法 url 与指定的端点 url 不同
- plugins - 在 Ckeditor5 上的跟踪更改和评论插件上禁用适配器集成模式
- java - 如何在 MyBatis 中使用 foreach 功能
- algorithm - 如何实现 Karatsuba 乘法,使其可以处理奇数和不等长的 X 和 Y?
- arrays - 我需要在 json 数组中获取嵌套元素