gpt4 book ai didi

java - 执行 PUT 请求时出现 HTTP 403

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:35 25 4
gpt4 key购买 nike

我正在创建一个 django Rest api,并尝试使用 HttpUrlConnection 通过 PUT 请求从 Android 设备发送 JSON 数据。

URL url = new URL(myurl);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("PUT");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
Log.v("Apiput", MainActivity.cookieManager.getCookieStore().getCookies().get(0).toString());
conn.connect();
if(conn.getResponseCode() != 200) {
return "" + conn.getResponseCode();
}
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
osw.write(put);
osw.flush();
osw.close();`

我知道我必须发送 csrf token ,但我认为我已经发送了。通过检查请求中的 META,我可以在 header 和 cookie 中看到 csrf token :

'HTTP_COOKIE': 'csrftoken=3jLNzfLIu1P5dBH4WWwggHMH7oDQC7Rx;'

在我的 Android 设备中,我有一个 CookieManager,它表示 csrf cookie 具有相同的值。

V/Apiput:csrftoken=3jLNzfLIu1P5dBH4WWwggHMH7oDQC7Rx

除了用户已通过身份验证(我可以发出 GET 请求)之外,我还收到 403(禁止)Http 错误

[2015年9月26日00:16:04]“PUT/api/works/34/HTTP/1.1”403 58

使用curl,我可以使用相同的用户凭据毫无问题地发送请求。

我想知道是否有人可以告诉我我做错了什么。

谢谢。

最佳答案

如果您要对 Django REST 框架进行 JSON 调用,则无需设置 cookie。如果您可以提供与 View 关联的权限,那绝对会有所帮助。

关于java - 执行 PUT 请求时出现 HTTP 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791522/

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