在IOS中对我有用的是此功能,我很挣扎,因为react-native-cookies曾经从响应中获取所有cookie并由响应处理,但是在RN> 0.56.0之后停止工作,所以我试图弄清楚如何从获取响应中获取那些信息,这对于IOS来说工作正常,但是Android不能从标头中获取整个cookie,这可能是由于服务器配置引起的,但这是我的获取调用,如果有人愿意的话要进行尝试,这可以在IOS Fetch Documentation
中使用fetchJsonPOSTHeaders(url){
return new Promise(function (resolve, reject) {
fetch(url, {
method: "POST",
headers: {
'Accept': '(if you have )',
'Content-Type': 'application/json',
'Connection': 'keep-alive',
'Accept-Language': 'en;q=1',
'Accept-Encoding': 'application/json',
'Pragma': 'no-cache',
'Host': HOST_NAME,
'User-Agent': DeviceAgent
},
}).then(function(response) {
response.status //=> number 100–599
response.statusText //=> String
response.headers //=> Headers
response.url //=> String
response._bodyInit // => The body
console.log('Android headers - ', response.headers);
var cookiesMap = JSON.stringify(response.headers.map);
var cookies = [];
JSON.parse(cookiesMap , (key, value) => {
//looking for cookies
if (key == 'set-cookie') {
cookies = value;
}
});
console.log('Cookies list - ', cookies);
resolve(cookies);
}, function(error) {
error.message //=> String
console.log('cookies are not available');
reject(error.message);
})
});
}
返回cookie后,您可以获取一些帮助来解析使用'set-cookie-parser'的cookie,然后使用react-native-cookies来实际存储它们。
此问题已部分解决,因为Android仍未在Headers响应中检索整个cookielist。