Как удалить и добавить новый заголовок Accept в шаблон Spring boot Rest? - PullRequest
0 голосов
/ 09 мая 2020

Я использую GraphQL Service, он возвращает 406 Not Acceptable , если заголовок Accept равен text/plain.

Ожидается, что он будет Accept as application/json Итак, я попытался переопределить заголовки RestTeamplate. Однако кажется, что заголовок Accept test/plain присутствует всегда. Я подтвердил это, включив отладку (logging.level.org.springframework.web.client.RestTemplate=DEBUG)

Консоль

 o.s.web.client.RestTemplate: Accept=[text/plain, application/json, application/*+json, */*]
 o.s.web.client.RestTemplate: Writing [{products(query: "title:tow*", first: 10) {edges {node {id legacyResourceId title}}}}] as "application/graphql"

Вот код, который я пытался переопределить заголовок Accept

HttpHeaders headers = new HttpHeaders();
RestTemplate restTemplate = new RestTemplate();

headers.add("Content-Type","application/graphql");
headers.setAccept(Collections.singletonList(new MediaType("application","json")));

String content = "{products(query: \"title:tow*\", first: 10) {edges {node {id title}}}}";
HttpEntity<String> requestEntity = new HttpEntity<String>(content, headers);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);

Я даже пробовал сначала удаляя заголовок Accept (headers.remove("Accept")), а затем setAccept, но он все равно не удаляет его из журнала.

Нужно ли что-то еще сделать?

Почему он не удаляет текст / простой из заголовка Accept?

Почему я вижу несколько опций в Принять, когда я установил только одну опцию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...