import 'dart:async'; import 'dart:io'; import 'package:cookie_jar/cookie_jar.dart'; import 'package:dio/dio.dart'; import 'package:path_provider/path_provider.dart'; Map optHeader = { 'accept-language': 'zh-cn', 'content-type': 'application/json' }; var dio = new Dio(BaseOptions(connectTimeout: 30000, headers: optHeader)); class NetUtils { static Future get(String url, [Map params]) async { var response; // 设置代理 便于本地 charles 抓包 // (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = // (HttpClient client) { // client.findProxy = (uri) { // return "PROXY 30.10.24.185:8888"; // }; // }; Directory documentsDir = await getApplicationDocumentsDirectory(); String documentsPath = documentsDir.path; var dir = new Directory("$documentsPath/cookies"); await dir.create(); dio.interceptors.add(CookieManager(PersistCookieJar(dir: dir.path))); if (params != null) { response = await dio.get(url, queryParameters: params); } else { response = await dio.get(url); } return response.data; } static Future post(String url, Map params) async { // // 设置代理 便于本地 charles 抓包 // (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = // (HttpClient client) { // client.findProxy = (uri) { // return "PROXY 30.10.24.185:8888"; // }; // }; Directory documentsDir = await getApplicationDocumentsDirectory(); String documentsPath = documentsDir.path; var dir = new Directory("$documentsPath/cookies"); await dir.create(); dio.interceptors.add(CookieManager(PersistCookieJar(dir: dir.path))); var response = await dio.post(url, data: params); return response.data; } }