如何在Flutter上使用Cookie发出http请求?

我想在正确处理Cookie的同时向远程服务器发出http请求(例如,存储服务器发送的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堂课,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上使用Cookie发出http请求? 的全部内容, 来源链接: utcz.com/qa/432390.html

回到顶部