import 'package:http/http.dart' as http;
import 'dart:convert';
import 'dart:developer' as developer;
//api 部分
class Apis{
static Future getUserinfo() async{
return await SendApi.get("https://xxx");
}
}
//发送封装
class SendApi{
//GET无参数
static Future get(String url) async {
return await NetWorkHelper.requestGet(url);
}
//GET带参数
static Future getParams(String url,Map<String, String>? params) async {
return await NetWorkHelper.requestGet(url,params: params);
}
//Post无参数
static Future post(String url) async {
return await NetWorkHelper.requestPost(url);
}
//Post 带参数
static Future postParams(String url,Map<String, String>? params) async {
return await NetWorkHelper.requestPost(url,params: params);
}
}
const statusErrorCode = -200;
class NetWorkHelper {
///get request
static Future requestGet(String url, {Map<String, String>? params}) async {
url = joinParams(params, url);
try {
Uri uri = Uri.parse(url);
http.Response response = await http.get(uri);
return jsonDecode(response.body);
} catch (e) {
developer.log("package:net/network.dart error get data:$e", name: 'request error');
}
}
///Stitching parameters(拼接参数)
static String joinParams(Map<String, String>? params, String url) {
if (params != null && params.isNotEmpty) {
StringBuffer stringBuffer = StringBuffer("?");
params.forEach((key, value) {
stringBuffer.write("$key" + "=" + "$value" + "&");
});
String paramStr = stringBuffer.toString();
paramStr = paramStr.substring(0, paramStr.length - 1);
url = url + paramStr;
}
return url;
}
///post request
static Future<dynamic> requestPost(String url,{Map<String, String>? params}) async {
try {
Uri uri = Uri.parse(url);
http.Response response = await http.post(
uri,
body: params,
);
return jsonDecode(response.body);
} catch (e) {
developer.log("package:net/network.dart error get data:$e", name: 'request error');
}
}
}
HTTP封装备份
最新推荐文章于 2024-09-24 11:31:35 发布