Flutter HTTP 请求使用 Basic Auth + 传递用户和密码来接收用户数据
Posted
技术标签:
【中文标题】Flutter HTTP 请求使用 Basic Auth + 传递用户和密码来接收用户数据【英文标题】:Flutter HTTP request using Basic Auth + passing user and password to receive user data back 【发布时间】:2019-10-23 15:34:20 【问题描述】:我是一个新手,不是专业的编码员(所以要温柔),我正在尝试构建一个必须连接到 HTTP 中的 Web/服务器 API 的 Flutter 应用程序。 根据文档,要建立连接,必须使用标头,此标头使用基本 Ath 方法,带有登录名和密码 + 内容类型。 到那时我想我已经找到了方法(参见下面的代码 sn-p),但我必须向 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);
非常感谢您的回答, 伯纳德
【问题讨论】:
How to pass basic auth credentials in API call for a Flutter mobile application?的可能重复 您需要 base64 凭据 - 请参阅链接的问题/答案 【参考方案1】:您的凭据应为 base64。您可以在评论中访问SO post。
您的代码应如下所示:
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);
另见this blog post。
【讨论】:
以上是关于Flutter HTTP 请求使用 Basic Auth + 传递用户和密码来接收用户数据的主要内容,如果未能解决你的问题,请参考以下文章