From 2d391a5a6c51958874547b94e7923bb1f243a717 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Mon, 11 Nov 2024 19:00:16 +0800 Subject: [PATCH] fix: failed to view article Signed-off-by: bggRGjQaUbCoE --- lib/http/danmaku.dart | 2 +- lib/http/html.dart | 6 ++++++ lib/http/init.dart | 8 +++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/http/danmaku.dart b/lib/http/danmaku.dart index bb38d43c..d98146ee 100644 --- a/lib/http/danmaku.dart +++ b/lib/http/danmaku.dart @@ -17,7 +17,7 @@ class DanmakaHttp { var response = await Request().get( Api.webDanmaku, data: params, - extra: {'resType': ResponseType.bytes}, + options: Options(responseType: ResponseType.bytes), ); if (response.statusCode != 200 || response.data == null) { return DmSegMobileReply(); diff --git a/lib/http/html.dart b/lib/http/html.dart index 8cbb7dc0..0e7a60ba 100644 --- a/lib/http/html.dart +++ b/lib/http/html.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:PiliPalaX/models/dynamics/article_content_model.dart'; +import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:html/dom.dart' as dom; import 'package:html/parser.dart' as parser; @@ -76,6 +77,11 @@ class HtmlHttp { var response = await Request().get( "https://www.bilibili.com/$dynamicType/$id/", extra: {'ua': 'pc'}, + options: Options( + headers: { + 'cookie': 'opus-goback=1', + }, + ), ); if (response.data is! String && response.data is! List) { return; diff --git a/lib/http/init.dart b/lib/http/init.dart index d458346e..bf82c3ed 100644 --- a/lib/http/init.dart +++ b/lib/http/init.dart @@ -191,15 +191,13 @@ class Request { */ Future get(url, {data, options, cancelToken, extra}) async { Response response; - options ??= Options(); - ResponseType resType = ResponseType.json; if (extra != null) { - resType = extra!['resType'] ?? ResponseType.json; if (extra['ua'] != null) { - options.headers = {'user-agent': headerUa(type: extra['ua'])}; + options ??= Options(); + options.headers ??= {}; + options.headers!['user-agent'] = headerUa(type: extra['ua']); } } - options.responseType = resType; try { response = await dio.get(