【发布时间】:2018-03-23 18:51:16
【问题描述】:
我正在尝试在记录模式下使用wiremock 修改响应。 我正在扩展 ResponseTransformer 并替换绝对 url 引用。 Wiremock 返回修改后的响应,但不更新 Content-Length 标头,因此 chrome 认为要下载的字节数很少。 当我尝试通过以下方式添加 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
【问题讨论】:
标签: wiremock