HTTP封装备份

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');
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值