我正在寻找一种使用ChromiumFX即时修改响应标头的方法(在将它们加载到浏览器之前)
这是我到目前为止尝试过的:
首先,我设置事件处理程序以修改响应事件
_browser.RequestHandler.GetResourceResponseFilter += new CfxGetResourceResponseFilterEventHandler(eh.GetResourceResponseFilter);
这是用作回调的方法
public void GetResourceResponseFilter(object sender, CfxGetResourceResponseFilterEventArgs e)
{
// we're doing modifycations only for example.com
if (!e.Request.Url.Contains("example.com")) return;
var headers = e.Response.GetHeaderMap(); // get header map
var new_headers = new List<string[]>(); // new headers will be stored here
// iterate over original headers
for(int i = 0; i < headers.Count - 1; i++)
{
var header = headers[i];
// if we're on our header, ignore it
if (header[0].Equals("remove-me")) continue;
// otherwise, add it to new headers list
new_headers.Add(header);
}
// set new headers for response
e.Response.SetHeaderMap(new_headers);
}
由于某种原因,这似乎并未在浏览器中进行任何更改。
我正在遍历所有标头,检查我的标头,如果存在,请忽略它。所有其他标头都添加到new_headers
列表中,并使用SetHeaderMap
进行设置。该方法似乎没有任何效果。