加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

android – 如何在flutter上使用cookie发出http请求?

发布时间:2020-12-14 14:50:17 所属栏目:百科 来源:网络整理
导读:我想在正确处理cookie的同时向远程服务器发出http请求(例如,存储服务器发送的cookie,并在我发出后续请求时发送这些cookie).保留任何和所有cookie都很好 对于我正在使用的http请求 static FutureMap postData(Map data) async { http.Response res = await ht
我想在正确处理cookie的同时向远程服务器发出http请求(例如,存储服务器发送的cookie,并在我发出后续请求时发送这些cookie).保留任何和所有cookie都很好

对于我正在使用的http请求

static Future<Map> postData(Map data) async {
  http.Response res = await http.post(url,body: data); // post api call
  Map data = JSON.decode(res.body);
  return data;
}

解决方法

这是一个如何获取会话cookie并在后续请求中返回它的示例.您可以轻松地调整它以返回多个cookie.创建一个Session类并通过它来路由所有GET和POST.

class Session {
  Map<String,String> headers = {};

  Future<Map> get(String url) async {
    http.Response response = await http.get(url,headers: headers);
    updateCookie(response);
    return json.decode(response.body);
  }

  Future<Map> post(String url,dynamic data) async {
    http.Response response = await http.post(url,body: data,headers: headers);
    updateCookie(response);
    return json.decode(response.body);
  }

  void updateCookie(http.Response response) {
    String rawCookie = response.headers['set-cookie'];
    if (rawCookie != null) {
      int index = rawCookie.indexOf(';');
      headers['cookie'] =
          (index == -1) ? rawCookie : rawCookie.substring(0,index);
    }
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读