OkHttp POST 请求设置 withCredentials 为 True?

Posted

技术标签:

【中文标题】OkHttp POST 请求设置 withCredentials 为 True?【英文标题】:OkHttp POST request set withCredentials to True? 【发布时间】:2019-12-04 00:22:15 【问题描述】:

无法通过 Django Rest Framework 令牌授权,因为我无法使用 OkHttp RequestBuilder 设置 withCredentials=true。 (我指的是这个https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials)

javascript 中使用 axios.post 这工作正常。我无法使用 OkHttp 请求生成器将此发布请求转换为 android

请求生成器似乎只为请求的 Header 和 Body 提供 setter 方法?

尝试阅读 OkHttp 文档,我也尝试将 withCredentials=True 作为标题发送

Django Rest Framework 后端无法识别令牌,也无法将不记名令牌解析给用户。

如果没有类进行身份验证,request.user 将设置为 django.contrib.auth.models.AnonymousUser 的实例 >,request.auth > 将设置为 None

【问题讨论】:

有什么进展吗?我也遇到了这个问题。 ***.com/a/35744388/3123335 看看这个答案。我刚试了一下,效果很好。 【参考方案1】:

我在这里假设withCredentials 是一个查询参数。 附加?withCredentials=true。到 URL 的末尾可能会让事情顺利进行。

完整的示例可能类似于 https://www.example.com?withCredentials=true

如果有多个参数,它可能看起来像https://www.example.com?withCredentials=true&otherParam=Stuff

【讨论】:

嘿,Matt,withCredentials 是 XHR 属性,表示使用 CSRF 令牌/cookie developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/…。我的理解也是,不建议在 POST 请求中使用查询字符串参数——它应该只用于 GET 请求。 我的错误。我对 XHR 不太熟悉。

以上是关于OkHttp POST 请求设置 withCredentials 为 True?的主要内容,如果未能解决你的问题,请参考以下文章

关于OkHttp缓存post请求的问题

在 Android 的 OKhttp 中通过 POST 请求发送 JSON 正文

OkHttpOkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )

使用 OkHttp 缓存 POST 请求

2021竞赛培训-OKHTTP2发起POST请求登录

Android:OkHttp的理解和使用