我试图在成功认证后将cookie设置为所有get或post请求。身份验证请求以格式{p>的List {
ForEach(recipeData) { recipe in
NavigationLink(destination: DetailView(recipe: recipe)) {
RecipeCard(recipe: recipe)
.cornerRadius(20)
.shadow(radius: 10)
}
}
}
标头值返回响应
Set-cookie
对于Web应用程序,我无需设置任何内容,xhr请求会自动处理附加的cookie。该cookie还负责识别后端用户。我在某处读到cookie只是以[accesstoken=sample_token; Version=1; Comment=secured; Domain=test.com; Max-Age=172800000; Expires=Mon, 07-Apr-2025 10:55:18 GMT; Path=]
作为键值的标头。因此,成功通过身份验证后,将从使用{p>给出的格式的响应标头中读取Cookie
标头
Set-Cookie
接下来,此值将作为标头附加到每个后续请求中。
var cookeis = response.headers.get("Set-Cookie").toString()
如果我在下面给出的任何发布请求中打印标题,我都可以看到标题正在发送
fun _POST(ctx: Context, path: String, query: List<Pair<String, String?>>): Request {
var fuel = Fuel.post(ctx.getString(baseID)+path, query)
val accesstoken = getCookie(ctx)
when(accesstoken!=null){
true -> fuel = fuel.set(com.github.kittinunf.fuel.core.Headers.COOKIE,accesstoken)
false -> {}
}
return fuel
}
这将打印先前设置的相同cookie-
val (request, response, result) = _POST(this@MainActivity, getString(R.string.API_MY_DATA), listOf("date" to currentDate))
.also { println(it.headers.toString()) }
.response()
,但是服务器返回400响应状态。相同的api也用于使用[accesstoken=sample_token; Version=1; Comment=secured; Domain=test.com; Max-Age=172800000; Expires=Mon, 07-Apr-2025 10:55:18 GMT; Path=]
库开发应用程序。在那里,xhr请求会自动处理cookie管理。
注意:我无权访问后端。
答案 0 :(得分:0)
我获得了用于发送单个传入Cookie的这段代码:
// response being from a previous Fuel POST
val cook = response.headers["Set-Cookie"].first()
Fuel.get("https://mundraub.org/node/add/plant").header(Headers.COOKIE to cook)
.responseString { request2, response2, result2 -> ... }