HTTP GET:标头(授权:承载令牌)

时间:2021-03-13 12:49:56

标签: flutter http get bearer-token

我正在邮递员中使用下面代码中提到的相同 URL 以及在传递接受和授权的标头中使用不记名令牌发出请求。 在邮递员中,它完全正常工作并给出了所需的响应,但在我的代码中,它给出了 403-Forbidden Request,它以某种方式没有传递令牌(我假设)。

  Future<ApiResponse<String>> getCompanyList() {
    String token =
        " ";

    Map<String, String> headers = {
      HttpHeaders.contentTypeHeader: "application/json", 
      HttpHeaders.authorizationHeader: "Bearer $token",
    };
    final String API = "https://.............";
    return http.get(API,headers: headers).then((data) {
      if (data.statusCode == 200 ) {
        final jsonData = json.decode(data.body);

        return ApiResponse<String>(data: jsonData, error: false, errorMessage: "");
      }
      return ApiResponse<String>(error: true, errorMessage: data.statusCode.toString());
    }).catchError((_) => ApiResponse<String>(error: true, errorMessage: "An Error Occureddddd!!!"));
  }
}

这是我的服务类,我从我的 Dart 类调用它,并且它调用正常。

class ApiResponse<T> {
  T data;
  bool error;
  String errorMessage;

  ApiResponse({this.data, this.error = false, this.errorMessage});
}

ApiResponse.dart

1 个答案:

答案 0 :(得分:0)

您应该将标题作为地图传递

类似的东西

var res = await http.post(url, body: body,headers: {
      "Accept": "*/*",
      "Content-Type" : "application/json",
      "Authorization" : "Bearer $token"
    },);