gpt4 book ai didi

java - Spring RestTemplate 与主体 jdk 1.8 交换 DELETE

转载 作者:行者123 更新时间:2023-11-29 04:40:32 25 4
gpt4 key购买 nike

我正在尝试通过交换方法使用 Spring RestTemplate 对正文执行 HTTP DELETE 请求,但我总是收到 400 错误请求,如 this question .使用 JavaScript 和其他工具,可以使用 DELETE 进行此 API 调用。我知道 java <1.8 不支持 DELETE 正文,但是 1.8 应该可以:see here .我将 spring-web-4.2.6.RELEASE 与 jdk 1.8 一起使用,所以我认为一定有办法。

我的代码:

public DealResponse closePosition(DealCloseRequest dealCloseRequest) {
try {
ObjectMapper mapper = new ObjectMapper();
//Object to JSON in String
String jsonInString = mapper.writeValueAsString(dealCloseRequest);

HttpEntity<String> entity = new HttpEntity<String>(jsonInString, this.headers);
//execute request
ResponseEntity<DealResponse> response = restTemplate.exchange("https://" + this.domain + "/gateway/deal/positions/otc", HttpMethod.DELETE, entity, DealResponse.class);
//return filled DealResponse object
return response.getBody();
} catch (JsonProcessingException e) {
this.logger.warn("could not close Position because: "+e);
return null;
}
}

错误信息:

org.springframework.web.client.HttpClientErrorException: 400 Bad Request

有谁知道用 spring restTemplate 做这个的方法吗?

最佳答案

带正文的 HTTP DELETE 请求与 Spring 4.2 版本的 rest 模板一起工作良好。您发送给您的服务的请求正文可能存在一些问题。如果它正在形成正确的 json 有效负载,你能检查“jsonInString”吗?检查标题以及“application/json”类型。您可以通过发送 DELETE 请求使用 Postman 验证您的服务。

关于java - Spring RestTemplate 与主体 jdk 1.8 交换 DELETE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39399319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com