【问题标题】:how to get session cookie from server and set it into the api header?如何从服务器获取会话 cookie 并将其设置到 api 标头中?
【发布时间】:2021-07-27 11:55:20
【问题描述】:

我的 api 请求中有 cookie 标头,每次我必须从邮递员那里复制此 cookie 并粘贴到我的代码中以使其工作。如何在我的应用中生成 cookie 并在 cookie 标头中给出该值?

这是我的登录代码:

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
  .addFormDataPart("username","zee@earthonetechno.com")
  .addFormDataPart("password","E1234567")
  .build();
Request request = new Request.Builder()
  .url("192.168.1.51/auth/login")
  .method("POST", body)
  .addHeader("User-Agent", "Koala Admin")
  .addHeader("Content-Type", "application/json")
  .addHeader("Cookie", "session=3e3710cb-9b41-47ea-ab1b-a1e1801e188b")
  .build();
Response response = client.newCall(request).execute();

我想把cookie放在这里addHeader("Cookie", "session=3e3710cb-9b41-47ea-ab1b-a1e1801e188b")

我在安卓工作室开发

【问题讨论】:

  • 为什么要在app端生成cookie?
  • 没有这个我无法登录。我有什么选择?
  • 随机生成UUID并当作Cookie处理
  • 谢谢,但不适合我

标签: java android cookies session-cookies okhttp


【解决方案1】:

我找到了解决办法

只需在登录部分包含这些行即可获取 cookie

Headers allHeaders = response.headers();
headerValue = allHeaders.get("Set-Cookie");

并将此headerValue 用于后续的 api 调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2012-09-14
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多