我正在开发一个简单的Flutter 移动应用程序,它需要调用使用基本身份验证的API.

我可以使用邮箱&密码凭据访问Postman中的API,并且在执行请求之前,它会将邮箱&密码编码为base64(我假设使用":"分隔).

我不知道如何在Flutter 打/dart 中做到这一点.

我已经修补了http包,并try 进行base64编码……但我只是从服务器拿回了错误.

有人能为基本身份验证请求提供一些指导或示例吗?

推荐答案

假设您的服务器预期username:password组合将使用UTF-8进行编码(有关更多详细信息,请参见RFC 7617),然后使用以下代码:

import 'dart:convert';
    
import 'package:http/http.dart';
    
main() async {
  String username = 'test';
  String password = '123£';
  String basicAuth =
      'Basic ' + base64Encode(utf8.encode('$username:$password'));
  print(basicAuth);
    
  Response r = await get('https://api.somewhere.io',
      headers: <String, String>{'authorization': basicAuth});
  print(r.statusCode);
  print(r.body);
}

Flutter相关问答推荐

当未聚焦且非空时,在flutter中更改文本字段的标签 colored颜色

无法在Flatter中设计正确的布局

我如何才能收到每天重复的预定通知?

无效字符(位于字符68处)flutter—update—... europe-west1.firebasedatabase.app/

MobX Build_Runner问题:不生成.G文件(Flutter )

为什么Build_Runner的输出为0?

关闭模式,但再次打开时微件条件相同

为什么我的Flutter 动画过渡没有发生?

如何在 Flutter 中创建具有渐变背景色的自定义 Snackbar?

添加appBar时绘制的线条发生偏移 Flu

为什么我们需要使用ChangeNotifierProvider而不是仅仅使用ChangeNotifier?

我想在文本结束后显示分隔线.它会在第一行、第二行或第三行结束

如何在 Flutter 中使用 drawLine() 和 drawCircle() 绘制等距离的 4 条线

状况不佳 - Cubit

type '({bool growable}) => List' 不是类型转换中类型 'List' 的子类型

如何在手势检测器中获得涟漪效应

使用 Firebase/Flutter 进行应用判断 - 100% 无效请求

如何在Flutter 中水平滚动堆叠定位的小部件?

阴影效果只出现在一张卡片的左边 在Flutter 中?

使用 hydrad_bloc 的预览包