diff --git a/package.json b/package.json index 09f6b7cb..9f0c112d 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,10 @@ "@types/express": "^5.0.0", "@types/multer": "^1.4.12", "@types/node": "^22.0.1", + "@types/on-finished": "^2.3.4", "@types/qrcode-terminal": "^0.12.2", "@types/react-color": "^3.0.13", + "@types/type-is": "^1.6.7", "@types/ws": "^8.5.12", "@typescript-eslint/eslint-plugin": "^8.3.0", "@typescript-eslint/parser": "^8.3.0", diff --git a/src/onebot/network/http-server.ts b/src/onebot/network/http-server.ts index 84351a3d..09598dd0 100644 --- a/src/onebot/network/http-server.ts +++ b/src/onebot/network/http-server.ts @@ -9,7 +9,8 @@ import { HttpServerConfig } from '@/onebot/config/config'; import { NapCatOneBot11Adapter } from '@/onebot'; import { IOB11NetworkAdapter } from '@/onebot/network/adapter'; import json5 from 'json5'; - +import { isFinished } from 'on-finished'; +import typeis from 'type-is'; export class OB11HttpServerAdapter extends IOB11NetworkAdapter { private app: Express | undefined; private server: http.Server | undefined; @@ -45,13 +46,6 @@ export class OB11HttpServerAdapter extends IOB11NetworkAdapter this.app = undefined; } - private isFinished(req: Request): boolean { - return req.complete; - } - - private hasbody(req: Request): boolean { - return req.headers['content-length'] !== undefined && req.headers['content-length'] !== '0'; - } private initializeServer() { this.app = express(); @@ -61,13 +55,13 @@ export class OB11HttpServerAdapter extends IOB11NetworkAdapter this.app.use(express.urlencoded({ extended: true, limit: '5000mb' })); this.app.use((req, res, next) => { - if (this.isFinished(req)) { + if (isFinished(req)) { next(); return; } - if (!this.hasbody(req)) { + if (!typeis.hasBody(req)) { next(); - return; + return } // 兼容处理没有带content-type的请求 req.headers['content-type'] = 'application/json';