123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import 'dart:convert';
- import 'dart:io';
- import 'dart:typed_data';
- import 'package:encrypt/encrypt.dart' as encrpyt;
- import 'package:flutter/material.dart';
- import '../bean/doctor_list.dart';
- import '../bean/login_entity.dart';
- import '../bean/user_list.dart';
- class Global {
- static const BackgroundColor = Color.fromARGB(0xff, 0xef, 0xef, 0xef);
- static const StatusBarColor = Colors.blueAccent;
- static String RootUrl = '39.105.121.97';
- // static const String RootUrl = '192.168.3.142';
- static String Port = '8080';
- static String get BaseUrl => 'http://$RootUrl:$Port/api/app/';
- static String get ImageUrl => 'http://$RootUrl:$Port/api';
- static String ChatPort = '8002';
- static String get SocketUrl => 'ws://$RootUrl:$ChatPort/ws';
- static const int responseSuccessCode = 200;
- static String token = "";
- static String clinic = "";
- static String loginPhoneNo = "";
- static String appointmentPersonId = "";
- static String userId = "";
- static String userIdentificationCard = "";
- static UserListEntity patient = UserListEntity();
- static int selectPatient = -1;
- static DoctorListEntity doctor = DoctorListEntity();
- static int selectDoctor = -1;
- static LoginEntity user = LoginEntity();
- }
- ///json请求头
- Map<String, String> jsonHeaders(
- {bool withToken = false, Map<String, String>? subHeaders}) {
- Map<String, String> headers = {
- HttpHeaders.contentTypeHeader: "application/json; charset=utf-8"
- };
- if (withToken) {
- headers["token"] = Global.token;
- }
- if (subHeaders != null) {
- headers.addAll(subHeaders);
- }
- return headers;
- }
- final _key = encrpyt.Key.fromUtf8("1234567890123456");
- final _iv = encrpyt.IV.fromUtf8("1234567890123456");
- final _encrypter = encrpyt.Encrypter(
- encrpyt.AES(_key, mode: encrpyt.AESMode.cbc, padding: "PKCS7"));
- ///AES加密,返回base64
- String aesEncrypt(String str) {
- var encrypted = _encrypter.encrypt(str, iv: _iv);
- return encrypted.base64;
- }
- ///AES解密,使用base64
- String aesDecrypt(String str) {
- var encrptyed = encrpyt.Encrypted.from64(str);
- return _encrypter.decrypt(encrptyed, iv: _iv);
- }
- ///解密响应body,只支持字符串和Uint8List类型
- String decodeBody(dynamic body) {
- assert((body is String || body is Uint8List), "只支持字符串和Uint8List类型");
- String decodeStr(String toDecode) {
- if (toDecode.startsWith('"') && toDecode.endsWith('"')) {
- return aesDecrypt(jsonDecode(toDecode));
- }
- return aesDecrypt(toDecode);
- }
- if (body is String) {
- return decodeStr(body);
- }
- if (body is Uint8List) {
- return decodeStr(utf8.decode(body as List<int>));
- }
- return "";
- }
- ///解密响应body到json对象,只支持字符串和Uint8List类型
- Map<String, dynamic> decodeBodyToJson(dynamic body) {
- String decoded = decodeBody(body);
- //服务器返回的内容解密出来会多点东西,导致jsondecode异常,这里处理掉
- decoded = decoded.replaceAll(RegExp(r'\0'), "");
- return jsonDecode(decoded);
- }
- ///加密请求body
- String encodeBody(dynamic body) {
- if (body is String) {
- return aesEncrypt(body);
- } else if (body is Map<String, dynamic>) {
- return aesEncrypt(jsonEncode(body));
- }
- return body;
- }
|