如何在飞镖的 API POST 调用中传递授权标头?

Posted

技术标签:

【中文标题】如何在飞镖的 API POST 调用中传递授权标头?【英文标题】:How to pass Authorization header in API POST call in dart? 【发布时间】:2021-04-02 02:31:29 【问题描述】:

我正在使用颤振应用程序,我想知道我们如何在 POST 请求中传递授权标头。这是我尝试过的代码。我需要帮助才能知道如何以正确的方式做到这一点。

    Future<String> addCartItemToDb(String userId) async 
    try 
      final res = await http.post(
        _baseURL,
        headers: 
          "Content-Type": "application/json",
          "accept": "*/*",
          "Authorization": "token"
        ,
        body: jsonEncode("userId": userID)
      );
      return _response(res);
    on SocketException 
      throw CustomException("No internet Connection");
    on FormatException 
      throw CustomException("Bad Response format !");
    
  

此外,我想知道我们如何解码 token 我在标头中传递的 userid 给那个已经登录的用户。

【问题讨论】:

这对您没有帮助吗? flutter.dev/docs/cookbook/networking/authenticated-requests 这能回答你的问题吗? How to pass headers in the HTTP post request in Flutter? 【参考方案1】:
final uri = Strings.base_url_api+Strings.nearby_cons;

var requestBody = 
  "organization_id": _orgID.toString()
;

http.Response response = await http.post(uri,
  headers: <String, String>
    'Content-Type': 'application/json',
    'Authorization': 'Bearer $_auth'
  ,
  body: requestBody,
);

if (response.statusCode == 200) 

  var responseJson = json.decode(response.body);
  print(responseJson);

 else 
  print('Status code error.. Check your API method or URL.. ');

【讨论】:

【参考方案2】:

final jobsListAPIUrl = constants.BASE_URL+'bookings/retail/0/20/?status='+constants.BOOKING_CONFIRM_KEY+'&filter=0'; 打印(作业列表APIUrl); var response = await http.get(jobsListAPIUrl,headers: 'Authorization':'Token'+widget.token); 打印(response.body);

【讨论】:

以上是关于如何在飞镖的 API POST 调用中传递授权标头?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 POSTMAN 环境中添加授权标头?

防止 nuxt auth 将授权标头发送到外部 url

如何使用 HttpClient 在 Web api 中传递标头值

Azure 授权 - 让未经身份验证的用户调用 api

JWT:如何在标头中发送授权?

授权请求标头与凭据的 POST 请求正文