SpringBoot-RestTemplate实现调用第三方API的方式
RestTemplate简介
Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率,所以很多客户端比如 Android或者第三方服务商都是使用 RestTemplate 请求 restful 服务。
下面通过代码讲解下SpringBoot-RestTemplate实现调用第三方API的方法,内容如下所示:
1. RestTemplate的方式来调用别人的API,将数据转化为json 格式,引入了fastjson
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> </dependency>
2. 编写RestTemlateConfig,配置好相关信息
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory){ return new RestTemplate(factory); } @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory(){ SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(15000); factory.setReadTimeout(5000); return factory; } }
3.编写controller,调用第三方的API,浏览器模拟get请求,postman模拟post请求
import com.alibaba.fastjson.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.util.Map; @RestController public class SpringRestTemplateController { @Autowired private RestTemplate restTemplate; /***********HTTP GET method*************/ @GetMapping("/testGetApi") public String getJson(){ String url="http://localhost:8089/o2o/getshopbyid?shopId=19"; //String json =restTemplate.getForObject(url,Object.class); ResponseEntity<String> results = restTemplate.exchange(url, HttpMethod.GET, null, String.class); String json = results.getBody(); return json; } /**********HTTP POST method**************/ @PostMapping(value = "/testPost") public Object postJson(@RequestBody JSONObject param) { System.out.println(param.toJSONString()); param.put("action", "post"); param.put("username", "tester"); param.put("pwd", "123456748"); return param; } @PostMapping(value = "/testPostApi") public Object testPost() { String url = "http://localhost:8081/girl/testPost"; JSONObject postData = new JSONObject(); postData.put("descp", "request for post"); JSONObject json = restTemplate.postForEntity(url, postData, JSONObject.class).getBody(); return json; } }
到此这篇关于SpringBoot-RestTemplate实现调用第三方API的方式的文章就介绍到这了,更多相关SpringBoot RestTemplate调用第三方API内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
springboot创建的web项目整合Quartz框架的项目实践
本文主要介绍了springboot创建的web项目整合Quartz框架的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06SpringBoot+log4j2.xml使用application.yml属性值问题
这篇文章主要介绍了SpringBoot+log4j2.xml使用application.yml属性值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12
最新评论