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

今天在写一个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());

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

相关代码

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

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

阅读 2.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题