Flutter / Dart Http发布请求访问头信息

时间:2019-11-14 06:07:22

标签: http post flutter dart

我正在发送我的登录表单的发帖请求;使用dart的HTTP库。

在回应中,我不知道如何访问标头内容。因为那是令牌所在的位置,我需要在整个会话中进行进一步的操作。

服务器使用JSON发送内容。 (我是新来的,请原谅我的无知)

我的主要目的是从POST请求获得的响应中读取标头内容。

下面是代码段。

var jsonresponse = Map();
  Future login() async{
  try{
      response = await http.post(
        baseLog,    
        body: {
          "username": username.text,
          "password": password.text
        },            
      );    
      //json decode
      this.jsonresponse = json.decode(this.response);    
      var token = this.response.headers.get('token');  //an attempt to access the header
      //print('token  ' + token);          
    }
    catch(ex){
      print('Error occured' + ex);
    }
  }

2 个答案:

答案 0 :(得分:0)

要发送带有标题和正文的帖子请求,您可以按照类似的方式

var response = await http.post(
        url,
        body: {
          "name": "Test",
          "password": "123456",
        },

        // you can pass headers using HttpHeaders different properties like
        headers: {
          // HttpHeaders has many properties like AUTHORIZATION, contentTypeHeader, acceptHeader etc. you can use them accordingly.
          HttpHeaders.AUTHORIZATION: "Bearer your_token",
          HttpHeaders.contentTypeHeader:"application/json"
        },

OR     
        //Also, you can pass headers like a json object,
        headers: {
          "authorisation:"Bearer your_token"
          "content-type":"application/json"
        }
      );

这是将发布请求发送到服务器的一般方法。

答案 1 :(得分:0)

要从响应中读取标题非常简单。

var response = await http.post(
    baseLog,

    body: {
      "username": username.text,
      "password": password.text
    },
  );
var date = response.headers['date'];

这应该使您从响应中得到约会。