我如何通过flutter中dio包中的get请求发送api'basics'的用户名和密码

问题描述 投票:0回答:1

我如何在flutter中的dio包中使用get请求发送api“basics”的用户名和密码我尝试了几次但不起作用,只能使用HTTP包*

import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:http/http.dart' as http;

import 'package:test/paymentmodel.dart';

class ApiService {
  final Dio dio;
  ApiService(this.dio);
 
  Future<List<PaymentMethodModel>> getall() async {
     String username = '11191082';
  String password = 'dayfreetrial';
  String basicAuth =
      'Basic ' + base64Encode(utf8.encode('$username:$password'));
  print(basicAuth);
    var response = await dio.get(
        'http://example-001-site1.atempurl.com/api/SalesInvoice/GetAllPayments',
        options: Options(headers: <String, String> {
          'Authorization':
              basicAuth,
        }));
    

    List<dynamic> datat = jsonDecode(response.data);
    List<PaymentMethodModel> storesList = [];
    for (int i = 0; i < datat.length; i++) {
      storesList.add(
        PaymentMethodModel.fromJson(datat[i]),
      );
    }

    return storesList;
  }
}

} }

android flutter firebase http-headers dio
1个回答
0
投票

尝试这种简单的方法来使用 Dio 实现基本身份验证

更新代码:

import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:test/paymentmodel.dart';

class ApiService {
  final Dio dio;
  ApiService(this.dio);

  Future<List<PaymentMethodModel>> getall() async {
    String username = '11191082';
    String password = 'dayfreetrial';
    String basicAuth = 'Basic ' + base64Encode(utf8.encode('$username:$password'));

    try {
      var response = await dio.get(
        'http://example-001-site1.atempurl.com/api/SalesInvoice/GetAllPayments',
        options: Options(headers: {'Authorization': basicAuth}),
      );

      List<dynamic> data = response.data;
      return data.map((item) => PaymentMethodModel.fromJson(item)).toList();

    } catch (e) {
      print('Error: $e');
      return [];
    }
  }
}

我建议尝试这种方法并参考 Dio 文档以获取更多示例。

© www.soinside.com 2019 - 2024. All rights reserved.