flutter 网络请求模板代码

import 'dart:convert';
import 'dart:math';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

import '../Robot.dart';
import '../details.dart';
import '../pojo.dart';

class CustomerDetailsProvider extends ChangeNotifier {

//  客户列表
  List<Customer> _list = [];
  List<Customer> get list => _list;

//  客户渲染详情
  List<Task> _list2 = [];
  List<Task> get list2 => _list2;

  bool _isLoading = false;

  bool get isLoading => _isLoading;
  final String name = "name";

///客户渲染详情
  Future<void> getCustomerDetails(String name,String phone) async {
    print("getCompanyProduct start");
    _isLoading = true;
    notifyListeners();
    final accessToken = Robot.accessToken;
    final userId = Robot.userId;
    final companyId = Robot.companyId;

    // 创建 Condition3 对象
    Condition7 condition = Condition7(
        customerName:name,
        customerPhone:phone,
    );

    // 创建 FetchDataRequest9 对象
    FetchDataRequest9<Condition7> request = FetchDataRequest9<Condition7>(
      condition: condition,
      offset: 10,
      fetchSize: 500,
    );

    var url = Uri.https(host, 'userOrderCustomer/detail/page');
    final uri = url.replace(
      queryParameters: {
        "access_token": accessToken,
        "userId": userId,
        "companyId": companyId,
      },
    );

    final a = jsonEncode(request.toJson((condition) => condition.toJson()));
    // print("toJson: ${a}");
    final response = await http.post(
      uri,
      headers: {"Content-Type": "application/json; charset=UTF-8"},
      body: a,
    );

    if (response.statusCode == 200) {
      print("客户渲染详情: response:${response.body}");
      final Map<String, dynamic> jsonResponse = json.decode(response.body);
      _isLoading = false;
      // print("getCompanyProduct end");
      var a = ApiResponse<Data963>.fromJson(
        jsonResponse,
            (data) => Data963.fromJson(data),
      );
      _list2 = a.data!.list;
      notifyListeners();
      return;
    } else {
      throw Exception('Failed to fetch products: ${response.reasonPhrase}');
    }
  }

  Future<void> getCustomers() async {
    print("getCompanyProduct start");
    _isLoading = true;
    notifyListeners();
    final accessToken = Robot.accessToken;
    final userId = Robot.userId;
    final companyId = Robot.companyId;

    // 创建 Condition3 对象
    Condition3 condition = Condition3();

    // 创建 FetchDataRequest9 对象
    FetchDataRequest9<Condition3> request = FetchDataRequest9<Condition3>(
      condition: condition,
      offset: 10,
      fetchSize: 500,
    );

    var url = Uri.https(host, 'userOrderCustomer/page');
    final uri = url.replace(
      queryParameters: {
        "access_token": accessToken,
        "userId": userId,
        "companyId": companyId,
      },
    );

    final a = jsonEncode(request.toJson((condition) => condition.toJson()));
    // print("toJson: ${a}");
    final response = await http.post(
      uri,
      headers: {"Content-Type": "application/json; charset=UTF-8"},
      body: a,
    );

    if (response.statusCode == 200) {
      print("response:${response.body}");
      final Map<String, dynamic> jsonResponse = json.decode(response.body);
      _isLoading = false;
      // print("getCompanyProduct end");
      var a = ApiResponse<Data9>.fromJson(
        jsonResponse,
        (data) => Data9.fromJson(data),
      );
      _list = a.data!.list;
      notifyListeners();
      return;
    } else {
      throw Exception('Failed to fetch products: ${response.reasonPhrase}');
    }
  }

  Future<bool> login() async {
    print("login start");
    var url = Uri.https(host, 'robot/login');
    var response = await http.post(url, body: {'sn': Robot.sn});
    var a = ApiResponse<LoginBean>.fromJson(
      jsonDecode(response.body),
      (data) => LoginBean.fromJson(data),
    ); // 传递一个从 JSON 解析 LoginBean 的方法);

    print(a.data.toString());
    if (a.data?.userId == null) {
      print('请扫码');
      return false;
    }
    Robot.userId = a.data!.userId!;
    Robot.companyId = a.data!.companyId!;
    Robot.accessToken = a.data!.accessToken!;
    print("Robot.accessToken:" + Robot.accessToken);
    print("login end");
    return true;
  }
}

const fetchSize = 24;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值