0
是否可以通過https站點更改har(使用json)響應?我看到getText()
的初始json,然後使用setText()
,並將其大小更改爲setSize
和setBodySize
。內容如我在調試中看到的那樣改變。但是,似乎沒有效果,Chrome會收到相同的舊json。有沒有辦法?通過BrowserMobProxy和Selen重寫HAR內容
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()
不知何故有舊的價值,但我不能重寫。或者是原因不同?
你不重寫HAR,而是一個HTTP響應。 HAR是請求+響應的JSON描述的導出歸檔。我有點困惑,爲什麼你會通過HTTP請求一個(然後試圖擺弄響應),而不是通過代理服務器以編程方式。 –
我需要用json改變http響應,所以我認爲har就是這樣。我如何以其他方式更改回復內容? –
'ResponseInterceptor'是正確的方式,但我認爲這個術語很混亂 - API也似乎不穩定。等等,這是你嗎? https://github.com/lightbody/browsermob-proxy/issues/382 –