我如何在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;
}
}
} }
尝试这种简单的方法来使用 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 文档以获取更多示例。