当尝试在Android环境中使用Okhttp库向服务器发出请求时,它与Postman中的(我认为)相同的调用没有相同的功能(代码已从Postman复制到android类)
代码:
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
String content = "userid=userID&passwd=passWord&__CSRFToken__=" + token + "&do=scplogin";
Log.i("Content", content);
RequestBody body = RequestBody.create(mediaType, content);
Request loginRequest = new Request.Builder()
.url(loginURL)
.post(body)
.addHeader("content-type", "application/x-www-form-urlencoded")
.addHeader("cache-control", "no-cache")
.build();
Response loginResponce = client.newCall(loginRequest).execute();
这是邮递员的尸体截图:
编辑:问题是,当在android环境中使用该调用时,服务器会回复CSRF令牌无效,而它应该与我在Postman调用和in调用中使用相同的获取该令牌的方法相同android
答案 0 :(得分:0)
就像@GregHNZ一样,这是会话的问题。服务器以一个cookie进行了响应,我之前从未想过。 Bij将给定的Cookie添加到响应正确的正确标题中。