gpt4 book ai didi

java - 获取和设置 session 值

转载 作者:行者123 更新时间:2023-11-30 05:38:56 26 4
gpt4 key购买 nike

在java中,尤其是Spring Boot中,我如何通过使用RestTemplate调用Api从域B获取或设置域A的 session 值?

域 B 中的示例我使用 RestTemplate postForObject 从域 demo2.com 调用 Api:

public ResponseEntity<String> doLogout(@RequestBody String userId){
System.out.println("123" + userId);
RestTemplate rest = new RestTemplate();
for(String s : listUrl) {
System.out.println("url: " + s);
rest.postForObject("http://demo2.com"+"/doLogout", userId, String.class);
}
return new ResponseEntity<String>(HttpStatus.OK);
}

在 demo2.com 中,这是我的 Api。但是当我打印 demo2.com 的 session 属性 userIdaccess-token 的值时,它总是显示 null。

@RequestMapping(value = "/doLogout", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> doLogout(HttpServletRequest request, @RequestBody String userId){
System.out.println("abc" + SessionUtil.getAttribute(request, "access-token") + SessionUtil.getAttribute(request, "userId"));
if(userId.equals(SessionUtil.getAttribute(request, "userId"))) {
System.out.println("vao day");
SessionUtil.setAtribute(request, "access-token", null);
}
return new ResponseEntity<String>(HttpStatus.OK);
}

最佳答案

虽然我从未将 postForObject 方法与 RestTemplate 一起使用,但我可以在他们的文档 ( https://www.baeldung.com/rest-template ) 中看到您必须将 Post 参数包装在 HttpEntity 对象中。

因此,在你的位置上,我会按照他们的建议进行尝试,

ClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
RestTemplate restTemplate = new RestTemplate(requestFactory);

HttpEntity<String> request = new HttpEntity<>(new String("<user_id_value>"));
String userId = restTemplate.postForObject("http://demo2.com"+"/doLogout", request, String.class);
System.out.println("User ID : " + userId);

但是,postForObject 用于创建然后返回的资源。如果您想提交带有您将根据需要指定和命名的 Post 参数的表单,那么您必须按照我上面粘贴的链接中的 4.4 进行操作,

https://www.baeldung.com/rest-template

这样,如果您包含 userId 的键值对,您将能够在 demo2.com 中获取它

关于java - 获取和设置 session 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56088647/

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