未在http颤振上设置标头

未在http颤振上设置标头,http,post,flutter,http-headers,authorization,Http,Post,Flutter,Http Headers,Authorization,我正在使用flatter构建一个应用程序,在尝试利用我们的api访问DB数据时,我收到一个错误400,表示请求中没有设置任何头 我试过从文档和其他人的问题中提取多种语法,但似乎从来都不起作用 用于测试的代码段: Future<String> getList() async { String url = 'https://api.something/test'; Map<String, String> headers = {"Authorization"

我正在使用flatter构建一个应用程序,在尝试利用我们的api访问DB数据时,我收到一个错误400,表示请求中没有设置任何头

我试过从文档和其他人的问题中提取多种语法,但似乎从来都不起作用

用于测试的代码段:

Future<String> getList() async {

    String url = 'https://api.something/test';

    Map<String, String> headers = {"Authorization": "Bearer $test"};

    var res = await http.post(url, headers: headers);

    print('Response status: ${res.statusCode}');
    print('Response body: ${res.body}');

    return 'Finished';
  }
问题是,我是否遗漏了什么?代码有什么问题吗?我认为这是一个后端问题,但我们似乎无法解决它,所以我只是想确保这应该是工作


我还试图找到一些其他的api进行测试,但所有有头的api都是针对您需要创建帐户的APIToken的。。。对我可以调试的问题有什么建议吗?

把这个放在这里,因为这个问题确实有答案。 Richard Heap留下的评论让我找到了解决此问题的方法。他的功劳归他所有,但我认为最好解决这个问题,这样将来有这个问题的人就不需要像我一样进行同样的搜索了


我敢打赌,您的服务器(错误地)希望授权以大写字母开头。然而,Dart将降低它的大小写。测试发送授权,例如使用邮递员进行确认。如果是这样,请查看pub.dev/packages/alt_http

这确实解决了问题。我对密钥是'Authorization'而不是'Authorization'没有问题,但是对包含'Bearer'而不是'Bearer'的值没有问题。我用同样的方法验证了这一点:

打一个邮差电话,和你的Flitter应用程序现在做的完全一样->不起作用


进行邮递员小写呼叫->修复问题

我敢打赌,您的服务器(错误地)希望
授权
以大写字母开头。然而,Dart将降低它的大小写。测试发送
authorization
,例如使用邮递员进行确认。如果是这样,看看你是对的!像你说的那样去找邮递员,同样的错误发生了,和我们的服务人员交谈,现在它工作了!谢谢你,伙计
    Map<String, String> headers = {"Authorization": "Bearer $test"};

    var res = await http.post(url, headers: headers);
    var res = await http.post(url, headers: {"Authorization": "Bearer $test"});
    var res = await http.post(url, headers: {HttpHeaders.authorizationHeader: "Bearer $test"};