首页 > 解决方案 > Flutter HTTP 请求使用 Basic Auth + 传递用户和密码来接收用户数据

问题描述

我是一个新手,不是专业的编码员(所以要温柔),试图构建一个必须连接到 HTTP 中的 Web/服务器 API 的 Flutter 应用程序。根据文档,要建立连接,必须使用标头,此标头使用基本 Ath 方法,带有登录名和密码 + 内容类型。到那时,我想我已经找到了方法(参见下面的代码片段),但我必须向 API 发送用户 ID 和用户密码才能接收回用户数据。我必须谦虚地承认我被困在那里......我提前感谢你的帮助!伯纳德

我的代码(在导入 dart:convert et package:http/http.dart + 安装了所需的依赖项之后):

void brol() async {
String username = 'user';
String password = 'pass';
String userpass = '$username:$password';
String basicAuth =
'Basic ' + userpass;
print(basicAuth);
Response r = await get('https://www.adresse/login.php',
headers: {'authorization': basicAuth});
}

非常感谢您的回答,伯纳德

标签: web-servicesflutterdart

解决方案


您的凭据应该在 base64 中。您可以访问评论中的SO 帖子

您的代码应如下所示:

main() async {
  String username = 'user';
  String password = 'pass';
  String basicAuth =
      'Basic ' + base64Encode(utf8.encode('$username:$password'));
  print(basicAuth);

  Response r = await get('https://www.adresse/login.php',
      headers: <String, String>{'authorization': basicAuth});
  print(r.statusCode);
  print(r.body);
}

另请参阅此博客文章


推荐阅读