我希望在正确处理cookie的同时向远程服务器发出http请求(例如,存储服务器发送的cookie,并在我发出后续请求时发送这些cookie).保存所有的cookies 会很好

对于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级的课程,让你所有的GETPOST通过它.

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);
    }
  }
}

Flutter相关问答推荐

修复容器`Text`和容器表单之间的重叠

在Flutter 中将参数从一个类传递到另一个类

Riverpod状态管理-在调用请求时更新用户界面

在Flutter 中每次点击按钮时都很难调用自定义函数

缩短经常使用的行Theme.of(context).colorScheme

确保通过在CheckIfFavoriteMovieEvent((event,emit){...})上注册处理程序误差

上传的图像不能在FireBase中预览.S档案类型为空白,摆动

Flutter中有没有办法区分鼠标左右平移?

在 flutter 的列中使用 Expanded 时出现渲染 Flex 错误

运行任何 flutter 命令都会显示无法安装 <版本>

Firebase Auth - 有没有办法为新用户预先生成 UID?

如何将此文本按钮剪辑在堆栈中的圆形头像上方?

如何在两个不同的路由(屏幕)之间正确设置 BlocProvider?

Flutter中如何连续获取TextField的文本是否为空?

.info/connected 这两个代码之间有什么区别吗?

Flutter RawMaterialButton 常量相对大小

Flutter - 异步文件读取异常处理

Flutter:font_awesome_icon pro 版报错?如何设置 font_awesome 克隆仓库的路径?

运行Flutter 测试时出现 FirebaseAppPlatform.verifyExtends 错误

RangeError(索引):无效值:有效值范围为空:点击文章时为0