SpringBoot-RestTemplate 女爷i 2022-05-21 03:42 238阅读 0赞 * * 摘要 * 使用 * GET请求 * 1 获取对象 * 2 获取数组 * 3 GET请求带有参数 * 4 请求文件 * POST请求 * 1 请求携带cookie * 2 模拟提交表单 * 3 模拟提交json * 4 通过URL提交POST请求 ## 摘要 ## SpringBoot提供RestTemplate作为Rest请求访问的客户端 ## 使用 ## ### GET请求 ### #### 1 获取对象 #### public User findById(Long id){ return restTemplate.getForObject("http://localhost:8080/"+id,User.class) } #### 2 获取数组 #### public List<User> getUsers(){ return Arrays.asList(restTemplate.getForObject("http://localhost:8080/list".User[].class)); } #### 3 GET请求带有参数 #### public User[] find(String name,int age){ Map<String,Object> param = Maps.newHashMap(); param.put("name",name); param.put("age",age); return restTemplate.getForObject( "http://localhost:8080/serach?name={name}&age={age}", User[].class, param) } #### 4 请求文件 #### String url = ""; HttpHeaders headers = new HttpHeaders(); headers.setAccept(Lists.newArrayList(MediaType.APPLICATION_OCTET_STREAM)); HttpEntity<String> request = new HttpEntity<>(headers); ResponseEntity<byte[]> response = restTemplate.exchange(url, HttpMethod.GET, request, byte[].class); byte[] bytes = response.getBody(); ### POST请求 ### #### 1 请求携带cookie #### String url= ""; HttpHeaders headers = new HttpHeaders(); List<String> cookies = new ArrayList<>(); cookies.add("mycookie=mycookie"); headers.put(HttpHeaders.COOKIE, cookies); HttpEntity request = new HttpEntity(null, headers); ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class); #### 2 模拟提交表单 #### String url = ""; HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); MultiValueMap<String, String> form = new LinkedMultiValueMap<>(); form.add("username", "admin"); form.add("password", "admin"); HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(form, headers); ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class); #### 3 模拟提交json #### String url = ""; String json = ""; HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setAccept(Lists.newArrayList(MediaType.APPLICATION_JSON)); HttpEntity<String> request = new HttpEntity<>(json, headers); ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class); #### 4 通过URL提交POST请求 #### String url = "http://localhost:8080/login?username={0}&password={1}"; url = MessageFormat.format(url, "admin", "admin"); restTemplate.postForEntity(url, null, String.class);
还没有评论,来说两句吧...