Я пытаюсь изменить ответ с помощью wiremock в режиме записи. Я расширяю ResponseTransformer и заменяю абсолютную ссылку URL. Wiremock возвращает измененный ответ, но не обновляет заголовок Content-Length, поэтому хром считает, что осталось загрузить еще несколько байтов. Когда я пытаюсь добавить заголовок Content-Length:
...
Response.Builder.like(response).headers(updateContentLength(response.getHeaders(), modifiedBody.length()));
...
private HttpHeaders updateContentLength(HttpHeaders headers, int bodyLength) {
HttpHeaders newHttpHeaders = HttpHeaders.noHeaders();
for (HttpHeader header : headers.all()) {
if(header.key().equalsIgnoreCase("Content-Length"))
{
newHttpHeaders.plus(new HttpHeader(header.key(), bodyLength +""));
}
else
{
newHttpHeaders.plus(header);
}
}
return newHttpHeaders;
}
Некоторые заголовки, такие как Set-Cookie, исчезают, а «Transfer-Encoding: chunked» добавляется дополнительно.
используя: wiremock-standalone-2.14.0.jar