web-services - 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});
}
非常感谢您的回答,伯纳德
解决方案
您的凭据应该在 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);
}
另请参阅此博客文章。
推荐阅读
- android - 如何从 SQLite 数据库迁移到关于“字符串”字段的 Room?
- css - 更新 IOS 13.4 Beta 版后,CSS 在 iPad 中出现故障
- android - Android意图在谷歌浏览器的同一选项卡中打开URL
- typescript - Aurelia - 如何在 View/ViewSlot 中获取动态创建的自定义元素的实例
- mysql - 使用原始 SQL 表达式回滚 knex 事务
- java - 检索秘密 Azure 保管库 AAD 身份验证
- sql - 特定年份不同列中每个项目的总销售额
- php - 在将帖子保存到数据库之前编辑帖子分类
- php - 在更改内部值的同时插入文件的内容
- postgresql - `不能删除表“globalLinks”,因为其他对象依赖它`尽管没有模型或对象依赖它。Sequelize 和 Postgres