mirror of
https://github.com/certd/certd.git
synced 2026-05-15 20:47:31 +08:00
perf(network): 新增全局公共http请求 headers设置
1. 新增公共请求头配置项,支持在系统设置中配置全局请求头 2. 实现请求头解析工具方法,支持多行KEY=VALUE格式配置 3. 在请求发起时自动附加全局公共请求头,且不会覆盖请求中已存在的同名Header 4. 添加多语言配置与前端表单组件,完善配置界面 5. 新增单元测试验证全局请求头合并逻辑
This commit is contained in:
@@ -82,6 +82,7 @@ export class HttpError extends Error {
|
||||
export const HttpCommonError = HttpError;
|
||||
|
||||
let defaultAgents = createAgent();
|
||||
let defaultHeaders: Record<string, string> = {};
|
||||
|
||||
export function setGlobalProxy(opts: { httpProxy?: string; httpsProxy?: string }) {
|
||||
logger.info("setGlobalProxy:", opts);
|
||||
@@ -92,6 +93,15 @@ export function getGlobalAgents() {
|
||||
return defaultAgents;
|
||||
}
|
||||
|
||||
export function setGlobalHeaders(headers: Record<string, string> = {}) {
|
||||
logger.info("setGlobalHeaders:", Object.keys(headers));
|
||||
defaultHeaders = { ...headers };
|
||||
}
|
||||
|
||||
export function getGlobalHeaders() {
|
||||
return defaultHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 创建请求实例
|
||||
*/
|
||||
@@ -148,6 +158,12 @@ export function createAxiosService({ logger }: { logger: ILogger }) {
|
||||
config.httpsAgent = agents.httpsAgent;
|
||||
config.httpAgent = agents.httpAgent;
|
||||
|
||||
if (Object.keys(defaultHeaders).length > 0) {
|
||||
const headers = AxiosHeaders.from(defaultHeaders);
|
||||
headers.set(config.headers || {});
|
||||
config.headers = headers;
|
||||
}
|
||||
|
||||
// const agent = new https.Agent({
|
||||
// rejectUnauthorized: false // 允许自签名证书
|
||||
// });
|
||||
|
||||
Reference in New Issue
Block a user