okhttp请求springboot写的接口中response有时候没有cookie是什么情况?

发布于 2022-09-12 01:15:46 字数 1489 浏览 30 评论 0

今天在写一个Android的demo发现问题:
请求已经是成功了,并且在response中能看到从后端返回的数据,但是没有cookie值,且状态码是200,后来去后端获取打印sessionid也没有输出,但是这情况出现了没多久,后来突然就好了,但是还是想请问一下有大佬知道这是不是有什么玄机?有点懵。下面是代码
okhttp请求成功,处理返回的代码如下:

  public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                //网络请求成功
                Log.d("login请求返回:",response.body().string());
//                intent.putExtra("response", response.body().string());
                //保持回话
                Headers headers = response.headers();
                List<String> cookies = headers.values("Set-Cookie");
                String session = cookies.get(0);
                String sessionId = session.substring(0, session.indexOf(";"));

但是发现set-cookie没有值,之后去后端查看并获取打印sessionid也无法输出,获取session的代码如下

public static HttpSession getCurrentSession(){
        return getRequest().getSession();
    }
    public static HttpServletRequest getRequest(){
        ServletRequestAttributes requestAttributes =
                (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = requestAttributes.getRequest();
        return request;
    }

然后是打印sessionid,代码如下:

 //这里为什么有时候能获取到session有时候不能?
        System.out.println(VGSessionUtils.getCurrentSession().getId());

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文