是否可以更改来自https站点的har(使用json)响应?我按getText()
查看了初始json,然后使用setText()
,并按setSize
和setBodySize
更改其大小。我在调试中看到的内容已更改。但似乎没有任何影响,并且chrome收到了同样的旧json。有办法吗?
public static class ResponseModifier implements ResponseInterceptor {
@Override
public void process(BrowserMobHttpResponse response, Har har) {
String contentType = response.getHeader("Content-Type");
if (contentType!=null && contentType.startsWith("application/json")){
response.getEntry().getResponse().getContent().setText(respond);
response.getEntry().getResponse().getContent().setSize(respond.length());
response.getEntry().getResponse().setBodySize(respond.length());
response.getRawResponse().removeHeaders("Content-Length");
response.getRawResponse().addHeader("Content-Length", ""+respond.length());
}
}
我想也许重点是response.getRawResponse().getEntity().getContentLength()
以某种方式具有旧值,但我不能重写它。或者原因是不同的?
答案 0 :(得分:0)
事实证明,这比我想象的容易得多。 我必须使用core-littleproxy版本的BMP,BrowserMobProxy类并创建BrowserMobProxyServer的实例。我只是使用过滤器:
proxy.addResponseFilter((response, contents, messageInfo) -> {
if ((contents.getContentType().startsWith("application/json"))) {
contents.setTextContents(respond);
}
});
感谢阅读:)