From 317c6d96e36ca2aa026b6b68c9a8dcaff06c03ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 13 May 2024 17:41:10 +0800 Subject: [PATCH] refactor: http_util --- src/common/utils/request.ts | 72 ++++++++++--------------------------- src/core | 2 +- 2 files changed, 19 insertions(+), 55 deletions(-) diff --git a/src/common/utils/request.ts b/src/common/utils/request.ts index f8ed3a2c..ce269991 100644 --- a/src/common/utils/request.ts +++ b/src/common/utils/request.ts @@ -1,57 +1,21 @@ -const https = require('node:https'); -export async function HttpGetCookies(url: string): Promise> { - return new Promise((resolve, reject) => { - const result: Map = new Map(); - const req = https.get(url, (res: any) => { - res.on('data', (data: any) => { - }); - res.on('end', () => { - try { - const responseCookies = res.headers['set-cookie']; - for (const line of responseCookies) { - const parts = line.split(';'); - const [key, value] = parts[0].split('='); - result.set(key, value); - } - } catch (e) { - } - resolve(result); +export class RequestUtil { + static async HttpGetCookies(url: string, method: string = 'GET'): Promise> { + const response = await fetch(url, { method: method }); + if (!response.ok) { + throw new Error(`Failed to fetch: ${response.statusText}`); + } - }); - }); - req.on('error', (error: any) => { - resolve(result); - // console.log(error) - }); - req.end(); - }); + const cookiesHeader = response.headers.get('set-cookie'); + if (!cookiesHeader) { + return new Map(); + } + const result = new Map(); + cookiesHeader.split(';').forEach((cookieLine) => { + const [key, value] = cookieLine.split('='); + result.set(key.trim(), value.trim()); + }); + + return result; + } } -export async function HttpPostCookies(url: string): Promise> { - return new Promise((resolve, reject) => { - const result: Map = new Map(); - const req = https.get(url, (res: any) => { - res.on('data', (data: any) => { - }); - res.on('end', () => { - try { - const responseCookies = res.headers['set-cookie']; - for (const line of responseCookies) { - const parts = line.split(';'); - const [key, value] = parts[0].split('='); - result.set(key, value); - } - } catch (e) { - } - resolve(result); - - }); - }); - req.on('error', (error: any) => { - resolve(result); - // console.log(error) - }); - req.end(); - }); - -} \ No newline at end of file diff --git a/src/core b/src/core index 7575cec4..f76362e1 160000 --- a/src/core +++ b/src/core @@ -1 +1 @@ -Subproject commit 7575cec4fe527796a72126097e6feb6139799e27 +Subproject commit f76362e1e894e3c6498f7709ce9f3b1a7c9fe836