@Bigma said in Платная помощь! FM/BAS - плохо:
@sergerdn мощный костыль ты конечно накидал
Мой код использует вполне себе стандартный api puppeteer , поэтому, вероятно, он не костыльный.
В примере выше куча кода для обвязки, сам рабочий код, что относится к фильтрации заголовков, очень маленький.
Отдельно код фильтрации заголовков без комментариев в коде:
async function interceptRequests(page, headers) {
await page.setRequestInterception(true);
page.on("request", iRequest => {
const requestHeaders = iRequest.headers();
let headerIntercepted = false;
for (const [headerName, headerValue] of Object.entries(headers)) {
if (requestHeaders[headerName]) {
console.log(`Header intercepted from "${headerName}: ${requestHeaders[headerName]}" to "${headerName}: ${headerValue}" for URL: ${iRequest.url()}`);
requestHeaders[headerName] = headerValue;
headerIntercepted = true;
}
}
if (headerIntercepted) {
iRequest.continue({headers: requestHeaders});
} else {
iRequest.continue();
}
});
}
await interceptRequests(page, {
"downlink": "downlink_any_value",
"rrt": "rrt_any_value",
"device-memory": "device-memory_any_value"
});
@Bigma said in Платная помощь! FM/BAS - плохо:
@sergerdn .. но можно проще опять же :)
Если у тебя есть решение проще, я удовольствием почитаю любые твои предложения по фильтрации/изменении/удалении/etc заголовков и посмотрю твой код реализации.
@Bigma said in Платная помощь! FM/BAS - плохо:
И все это хозяйство можно изменить другим способом.
Согласен, решение, что я предложил не единственное. Я делал подобную задачу еще другими двумя способами, но общая идея у них одна - перехватывать и манипулировать заголовками.