Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取并设置会话的值_Java_Spring_Spring Boot_Servlets_Resttemplate - Fatal编程技术网

Java 获取并设置会话的值

Java 获取并设置会话的值,java,spring,spring-boot,servlets,resttemplate,Java,Spring,Spring Boot,Servlets,Resttemplate,在java中,尤其是spring boot中,如何通过使用RestTemplate调用Api从域B获取或设置域A会话的值 例如,在域B中,我使用RestTemplatepostForObject从域demo2.com调用Api: public ResponseEntity<String> doLogout(@RequestBody String userId){ System.out.println("123" + userId); RestTemplate rest

在java中,尤其是spring boot中,如何通过使用RestTemplate调用Api从域B获取或设置域A会话的值

例如,在域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);
}

尽管我从未在RestTemplate中使用postForObject方法,但我在他们的文档()中看到,您必须将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);
ClientHttpRequestFactory requestFactory=new SimpleClientHttpRequestFactory();
RestTemplate RestTemplate=新的RestTemplate(requestFactory);
HttpEntity请求=新的HttpEntity(新字符串(“”);
字符串userId=restTemplate.postForObject(“http://demo2.com“+”/doLogout”、请求、字符串、类);
System.out.println(“用户ID:+userId”);
但是,postForObject用于创建一个资源,然后返回该资源。如果您想提交一个带有Post参数的表单,您将根据需要指定参数和名称,那么您必须遵循我上面粘贴的链接中的4.4

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

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);