gpt4 book ai didi

ios - Alamofire 授权 POST

转载 作者:行者123 更新时间:2023-11-29 01:46:50 25 4
gpt4 key购买 nike

我在 ios 中使用 swift 的一个请求 POST 有问题 ...

在curl中我发送一个这样的请求:

curl -H "Authorization: token ce2800d53d520b4a73a005a611d53d299e0c1d5e"....

我的服务器响应为 200

但是在 ios 中我提出这样的请求:

let parameters = [
"date_of_birth": strDate!,
"address": strPlace!,
]

let parametersH = [
"Authorization": "token 9640e65f66429415fb9359739ed8bc3f57cb0566"
]


Alamofire.request(Alamofire.Method.POST, "http://192.168.1.70:8000/profileMe/", parameters: parameters,headers:parametersH).progress { bytesWritten, totalBytesWritten, totalBytesExpectedToWrite in
}.responseJSON{ request, response, JSON, error in

if (error == nil) {
println(response)
}
else{
println(error)
}

}

我的服务器发送一个 403....

如何让我通过一个有效的身份验证请求?....

我不知道...因为 header 不正确...当我发送请求时...

当我在 android 上发送这个请求时我没有问题......并且请求是相似的......

最佳答案

我遇到了同样的问题,调试了一整天,终于弄明白了。我几乎可以肯定 OP 使用的是 Django。

这对于 Alamofire 或底层 Swift/Objective C 网络代码来说是一个微妙之处。我认为如果 Alamofire 在响应 header 中收到 Set-Cookie,它会将此信息作为 Cookie 负载发送到后续请求 header 中。这是不同于其他 HTTP 网络库的行为。

由于它与 Django 相关,Alamofire 将在后续请求中发送 sessionid cookie 值,这使得 Django 认为 session 已经启动,然后您在使用 SessionAuthentication 时没有提供正确的 CSRF token ,它会抛出 403 权限错误。这就是为什么您第一次可以成功执行请求,然后第二次抛出 403 的原因。

要解决这个问题,通常要阻止 Alamofire 自动发送 cookie 值,请设置

let headers = [
"Cookie": ""
]

关于ios - Alamofire 授权 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com