Тело ответа, используя Http DELETE, используя OkHttp или RestTemplate. - PullRequest
3 голосов
/ 08 ноября 2019

Я не могу прочитать тело ответа после выполнения запроса DELETE. Я пробовал оба ohttp и RestTemplate. Я получаю ответ, если использую Postman для того же запроса DELETE.

Вот мой код, использующий okhttp. Я вижу код ответа как 202, но тело ответа является нулевым. Я что-то здесь упускаю?

private String httpDelete(HttpHeaders httpHeaders, String url) throws IOException {
    Request.Builder builder = new Request.Builder();
    for (Map.Entry<String, List<String>> entry : httpHeaders.entrySet()) {
        for (String value : entry.getValue()) {
            builder.addHeader(entry.getKey(), value);
        }
    }
    Request request = builder
            .url(url)
            .delete(null)
            .build();

    okhttp3.Response response = okHttpClient.newCall(request).execute();
    return response.body().string();
}

Также пробовал RestTemplate, тело всегда нулевое, но код ответа - 202.

ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.DELETE, serviceRequestHttpEntity, String.class);
        body = exchange.getBody();
        if (body != null) {
            Response response = objectMapper.readValue(body, Response.class);
            return String.valueOf(response.getTaskResponse().getTaskId());
        }

Редактировать: Вот заголовки ответа

 Server - nginx
 Date - Fri, 08 Nov 2019 13
 Content-Type - application/json;charset=UTF-8
 Transfer-Encoding - chunked
 Connection - keep-alive
 Accept-Encoding - gzip, deflate
 Accept - application/json
 usercontext - eyJ1c2VyTmFtZSI6InNuYXBhcGl1c2VyMDEiLCJ1c2VyUm9sZXMiOlsiUHJvdmlkZXJEYXRhQ2VudGVyQWRtaW4iXSwidGVuYW50TmFtZSI6IiJ9
 Set-Cookie - JSESSIONID=F6C091C167F9751554B74A7B4A7CDB4F; Path=/; HttpOnly
 Response-Time - Fri, 08 Nov 2019 13
 X-Forwarded-For - 10.26.34.40
 X-Content-Type-Options - nosniff
 X-Frame-Options - DENY
 X-Real-IP - <hidden>
 User-Agent - okhttp/4.2.2
 Expires - 0
 X-XSS-Protection - 1; mode=block
 Cookie - JSESSIONID=39168C2CDF74AE7A69B1C8A38E5DCBF4
 override - override-with-referred-template
 X-Forwarded-Proto - https
...