首页>>后端>>SpringBoot->SpringBoot开发之采用RestTemplate进行第三方网络请求

SpringBoot开发之采用RestTemplate进行第三方网络请求

时间:2023-11-29 本站 点击:0

在Spring-Boot开发中,RestTemplate同样提供了对外访问的接口API,这里主要介绍Get和Post方法的使用。Get请求提供了两种方式的接口getForObject 和 getForEntity,getForEntity提供如下三种方法的实现。

Get请求之——getForEntity(Stringurl,Class responseType,Object…urlVariables)

该方法提供了三个参数,其中url为请求的地址,responseType为请求响应body的包装类型,urlVariables为url中的参数绑定,该方法的参考调用如下:

//http://USER-SERVICE/user?name={name)RestTemplaterestTemplate=newRestTemplate();Map<String,String>params=newHashMap<>();params.put("name","dada");//ResponseEntity<String>responseEntity=restTemplate.getForEntity("http://USERSERVICE/user?name={name}",String.class,params);

Get请求之——getForEntity(URI url,Class responseType)

该方法使用URI对象来替代之前的url和urlVariables参数来指定访问地址和参数绑定。URI是JDK http://java.net包下的一个类,表示一个统一资源标识符(Uniform Resource Identifier)引用。参考如下:

RestTemplaterestTemplate=newRestTemplate();UriComponentsuriComponents=UriComponentsBuilder.fromUriString("http://USER-SERVICE/user?name={name}").build().expand("dodo").encode();URIuri=uriComponents.toUri();ResponseEntity<String>responseEntity=restTemplate.getForEntity(uri,String.class).getBody();

Get请求之——getForObject

getForObject方法可以理解为对getForEntity的进一步封装,它通过HttpMessageConverterExtractor对HTTP的请求响应体body内容进行对象转换,实现请求直接返回包装好的对象内容。getForObject方法有如下:

getForObject(Stringurl,ClassresponseType,Object...urlVariables)getForObject(Stringurl,ClassresponseType,MapurlVariables)getForObject(URIurl,ClassresponseType)

Post 请求

Post请求提供有三种方法,postForEntity、postForObject和postForLocation。其中每种方法都存在三种方法,postForEntity方法使用如下:

RestTemplaterestTemplate=newRestTemplate();Useruser=newUser("didi",30);ResponseEntity<String>responseEntity=restTemplate.postForEntity("http://USER-SERVICE/user",user,String.class);//提交的body内容为user对象,请求的返回的body类型为StringStringbody=responseEntity.getBody();

postForEntity存在如下三种方法的重载

postForEntity(Stringurl,Objectrequest,ClassresponseType,Object...uriVariables)postForEntity(Stringurl,Objectrequest,ClassresponseType,MapuriVariables)postForEntity(URIurl,Objectrequest,ClassresponseType)

postForEntity中的其它参数和getForEntity的参数大体相同在此不做介绍。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/383.html