Flutter 如何在Dart中保存cookie?
我正在用flatter制作一个应用程序,我需要在标题上发送一个cookie来访问我的web API 然而,我没有任何成功 这是我的密码。 我怎样才能把一块饼干留在弗利特Flutter 如何在Dart中保存cookie?,flutter,dart,cookies,Flutter,Dart,Cookies,我正在用flatter制作一个应用程序,我需要在标题上发送一个cookie来访问我的web API 然而,我没有任何成功 这是我的密码。 我怎样才能把一块饼干留在弗利特 import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; class XsrfToken { static Future<St
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
class XsrfToken {
static Future<String> getXsrf(String getJwt) async {
var url = 'https://www.myservice.com/api/v1/api.php';
var decode = json.decode(getJwt);
var header = {"Content-Type": "application/json"};
Map params = {"token": decode};
var _body = json.encode(params);
var response = await http.post(url, headers: header, body: _body);
print('Responde status ${response.statusCode}');
print('Responde body ${response.body}');
var xsrf = response.body;
var prefs = await SharedPreferences.getInstance();
prefs.setString("TokenXSRF", xsrf);
return xsrf;
}
}
导入'dart:convert';
将“package:http/http.dart”导入为http;
导入“package:shared_preferences/shared_preferences.dart”;
类XsrfToken{
静态未来getXsrf(字符串getJwt)异步{
var url='1〕https://www.myservice.com/api/v1/api.php';
var decode=json.decode(getJwt);
var头={“内容类型”:“应用程序/json”};
Map params={“token”:decode};
var_body=json.encode(params);
var response=wait http.post(url,headers:header,body:_body);
打印('responder status${response.statusCode}');
打印('Responde body${response.body}');
var xsrf=response.body;
var prefs=await SharedPreferences.getInstance();
prefs.setString(“令牌xsrf”,xsrf);
返回xsrf;
}
}
向听众添加cookies
var cookie1='xyz';
var cookie2=‘abc’;
变量头={
“内容类型”:“应用程序/json”,
‘Cookie’:‘myCookie1=$cookie1;mycookie2=$cookie2’,
};
用于检索cookies
var-cookiesData=response.headers['set-cookie'];
if(cookiesData!=null){
Map _cookies=_formatCookies(cookiesData);
//做你的逻辑
}
你会得到一个很长的字符串
以下是我个人用于格式化的内容
Map _formatCookies(String cookiesData) {
Map cookies = {};
if (cookiesData.contains('cookie1')) {
List at = RegExp(r'(cookie1)(.*?)[^;]+').stringMatch(cookiesData).split('=');
cookies['cookie1'] = at[1];
}
if (cookiesData.contains('cookie2')) {
List rt = RegExp(r'(cookie2)(.*?)[^;]+').stringMatch(cookiesData).split('=');
cookies['cookie2'] = rt[1];
}
return cookies;
}
这回答了你的问题吗?我试图在我的代码中重现。但到目前为止,我还无法获取,那么:请在代码中显示我好吗?是的,但是我如何从服务器响应中重新获取此cookie?我需要的是获取服务器发送给我的cookie。我个人用于jwt令牌的格式化函数,不确定其他字符串的RegExp。谢谢您的回答。我将尝试在这里复制。