app/lib/common/io/rs_http.dart

56 lines
1.7 KiB
Dart
Raw Normal View History

2024-02-07 19:32:36 +08:00
import 'dart:convert';
import 'dart:typed_data';
2024-02-07 22:19:43 +08:00
import 'package:starcitizen_doctor/common/conf/app_conf.dart';
2024-02-07 19:32:36 +08:00
import 'package:starcitizen_doctor/common/rust/api/http_api.dart' as rust_http;
import 'package:starcitizen_doctor/common/rust/api/http_api.dart';
2024-02-07 22:19:43 +08:00
import 'package:starcitizen_doctor/common/rust/http_package.dart';
2024-02-07 19:32:36 +08:00
class RSHttp {
2024-02-07 22:19:43 +08:00
static init() async {
await rust_http.setDefaultHeader(headers: {
"User-Agent":
2024-02-07 22:46:18 +08:00
"SCToolBox/${AppConf.appVersion} (${AppConf.appVersionCode})${AppConf.isMSE ? "" : " DEV"} RSHttp"
2024-02-07 22:19:43 +08:00
});
}
2024-02-07 22:29:15 +08:00
static Future<RustHttpResponse> get(String url,
2024-02-07 19:32:36 +08:00
{Map<String, String>? headers}) async {
final r = await rust_http.fetch(
method: MyMethod.gets, url: url, headers: headers);
2024-02-07 22:29:15 +08:00
return r;
}
static Future<String> getText(String url,
{Map<String, String>? headers}) async {
final r = await get(url, headers: headers);
2024-02-07 19:32:36 +08:00
if (r.data == null) return "";
final str = utf8.decode(r.data!);
return str;
}
2024-02-16 22:47:06 +08:00
static Future<RustHttpResponse> postData(String url,
2024-02-07 19:32:36 +08:00
{Map<String, String>? headers,
String? contentType,
Uint8List? data}) async {
if (contentType != null) {
headers ??= {};
headers["Content-Type"] = contentType;
}
final r = await rust_http.fetch(
method: MyMethod.post, url: url, headers: headers, inputData: data);
2024-02-16 22:47:06 +08:00
return r;
2024-02-07 19:32:36 +08:00
}
2024-02-07 22:19:43 +08:00
static Future<RustHttpResponse> head(String url,
{Map<String, String>? headers}) async {
final r = await rust_http.fetch(
method: MyMethod.head, url: url, headers: headers);
return r;
}
static Future<List<String>> dnsLookupTxt(String host) async {
return await rust_http.dnsLookupTxt(host: host);
}
2024-02-07 19:32:36 +08:00
}