告诉我们您的环境:
- 木偶版本:1.19.0
- 平台/操作系统版本:Debian 9
- URL(如果适用(:
- Node.js版本:8
预期结果是什么
我想覆盖标头中请求的主机。例如请求url:http://a.com/x.jpg
。DNS解析程序可能会将主机解析为一个较慢的ip地址,但我知道有一个更好的ip,比如1.2.3.4
。我想用ip地址更改url,并修改请求标头中的主机。
类似于curl http://a.com/x.jpg
至curl --header "Host:a.com" http://1.2.3.4/x.jpg
会发生什么
await page.setRequestInterception(true);
page.on('request', request => {
const newHeaders = Object.assign({}, request.headers(), {
Host: 'a.com'
});
request.continue({ headers: newHeaders, url: 'http://1.2.3.4/x.jpg' });
但不起作用
您应该使用request.respond来覆盖标题,如下所示:
page.on('request', request => {
request.respond({
headers:{...request._headers,your_new_header_key:value},
body
})
});