【问题标题】:Flutter HTTP calls using authorization fails but works in postman使用授权的 Flutter HTTP 调用失败但在邮递员中有效
【发布时间】:2021-01-27 14:42:57
【问题描述】:

我正在使用 Flutter 1.20.4、http 0.12.2 包,我遇到了一个问题,即我的 HTTP 调用在 Postman 中成功但在颤振中失败。我遇到了许多关于小写 HTTP 标头和一些旧服务器的问题的文章。我没有这个问题,因为我用小写测试过邮递员。我在 jwt.io 上检查了我的不记名令牌,并且颁发者与我正在使用的域匹配。任何使用授权的 Flutter 调用都将返回“未通过身份验证”,因此它会出现 HTTP 302(重定向到身份提供者登录)。有什么想法吗?

我的代码如下所示:

import 'package:http/http.dart' as http;
...
var getProfileUrl = _identityApi + '/api/profile/get'; // TODO: CHANGE THIS
var accessToken = await _secureStorage.read(key: 'bearerToken');
var response = await http.get(getProfileUrl, headers: {
    HttpHeaders.contentTypeHeader: 'application/json',
    HttpHeaders.acceptHeader: 'application/json',
    HttpHeaders.authorizationHeader: 'Bearer $accessToken'
});

邮递员:

颤动:

【问题讨论】:

  • 会不会是你的后端区分大小写?在邮递员中你写了bearer,而在颤振中它是Bearer lol
  • @magicleon94 不,我试过了,它不区分大小写,你可以同时使用 "Bearer" 或 "bearer" 它仍然可以在使用邮递员的服务器上工作

标签: flutter dart asp.net-web-api authorization postman


【解决方案1】:

试试这个

import 'package:http/http.dart' as http;
...
Map<String,String> _headers={
    'content-type': 'application/json',
    'accept: 'application/json',
    'authorization': 'Bearer $accessToken'
};
var getProfileUrl = _identityApi + '/api/profile/get'; // TODO: CHANGE THIS
var accessToken = await _secureStorage.read(key: 'bearerToken');
var response = await http.get(getProfileUrl, headers: _headers);

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 2021-09-11
    • 2021-10-21
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多