Я не вижу ответа на это в Руководство разработчика, хотя, возможно, я не ищу в нужном месте.
Я хочу перехватить HTTP-запросы с расширением Chrome, а затем переслать его, возможно, с помощью новых/разных HTTP-заголовков - как я могу это сделать?
Я не вижу ответа на это в Руководство разработчика, хотя, возможно, я не ищу в нужном месте.
Я хочу перехватить HTTP-запросы с расширением Chrome, а затем переслать его, возможно, с помощью новых/разных HTTP-заголовков - как я могу это сделать?
PS: я автор этого расширения, так что вы можете обвинить меня во всем, что вам не нравится :)
Это было невозможно, когда OP задал вопрос, но вскоре Chrome выпустил экспериментальный API WebRequest. Но теперь они были официально включены в расширение Chrome. Вы можете использовать его для изменения заголовков запросов и ответов в Chrome.
Посмотрите на этот пример:
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return { requestHeaders: details.requestHeaders };
},
{urls: ['<all_urls>']},
[ 'blocking', 'requestHeaders']
);
Если вы хотите использовать расширение Chrome, вы можете использовать Requestly, который позволяет вам изменять заголовки запроса и ответа по своему усмотрению. Посмотрите на этот снимок:
Изменение заголовков запросов (https://developer.chrome.com/extensions/webRequest) поддерживается в chrome 17.
Вы смотрите в нужное место, но перехватывание HTTP-запросов еще не существует, но команда расширения знает, что это популярный запрос и хотел бы получить к нему когда-нибудь в ближайшем будущем.
Имейте в виду, что начиная с chrome 72, некоторые заголовки не разрешены, если вы не добавите extraHeaders
в opt_extraInfoSpec
Поэтому приведенный выше пример в ответе @sachinjain024 будет выглядеть примерно так:
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return { requestHeaders: details.requestHeaders };
},
{urls: ['<all_urls>']},
[ 'blocking', 'requestHeaders', 'extraHeaders']
);
Для получения дополнительной информации, проверьте скриншот документации из документации https://developer.chrome.com/extensions/webRequest#life_cycle_footnote