相关疑难解决方法(0)

Java Spring RestTemplate设置不需要的标头

我想使用响应rest api的服务.但是,当我将Accept-Charset标头设置为long值的请求发送时,该服务会中断.一个显而易见的解决方案是明确设置此标头:"Accept-Charset": "utf-8".然而,这似乎不起作用:

    String requestBody = "{\"message\": \"I am very frustrated.\"}";
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    ArrayList<Charset> acceptCharset = new ArrayList<>();
    acceptCharset.add(StandardCharsets.UTF_8);
    headers.setAcceptCharset(acceptCharset);
    log.info(headers.toString());
    ResponseEntity<String> res = restTemplate.exchange("http://httpbin.org/post", HttpMethod.POST, new HttpEntity<>(requestBody, headers), String.class);
    String httpbin = res.getBody();

    log.info("httpbin result: " + httpbin);
Run Code Online (Sandbox Code Playgroud)

这会返回以下结果:

-> {Accept-Charset=[utf-8]}

-> INFO httpbin result: {
  "args": {},
  "data": "{\"message\": \"I am very frustrated.\"}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "text/plain, application/json, application/*+json, */*",
    "Accept-Charset": "big5, big5-hkscs, cesu-8, …
Run Code Online (Sandbox Code Playgroud)

java spring

11
推荐指数
2
解决办法
5346
查看次数

标签 统计

java ×1

spring ×1