• Springboot使用RestTemplate调用第三方接口


    配置

    新建一个RestTemplate的配置类,如下:

    1. /**
    2. * RestTemplate配置项
    3. */
    4. @Configuration
    5. public class RestTemplateConfig {
    6. @Bean
    7. public RestTemplate restTemplate() {
    8. return new RestTemplate();
    9. }
    10. }

    在controller中引入RestTemplate,如下:

    1. @RestController
    2. public class LoginController {
    3. @Resource
    4. private RestTemplate restTemplate;
    5. }

    第三方接口为GET请求时

    代码如下(要注意get参数的位置是从1开始的,而非0):

    1. @RestController
    2. public class LoginController {
    3. @Resource
    4. private RestTemplate restTemplate;
    5. @PostMapping("/login")
    6. public Result login(@RequestBody @Validated LoginDto dto) {
    7. // 请求地址及参数
    8. String url = "https://api.gumengya.com/Api/IP?format={1}&ip={2}";
    9. String format = "json";
    10. String ip = "113.24.172.71";
    11. // 请求拼接并执行
    12. ResponseEntity result = restTemplate.getForEntity(url, String.class, format, ip);
    13. // 输出返回的响应状态、响应体、响应头
    14. System.out.println(result.getStatusCode());
    15. System.out.println(result.getBody());
    16. System.out.println(result.getHeaders());
    17. // 响应体为String格式,需要转换为json格式
    18. JSONObject jsonObject = JSON.parseObject(result.getBody());
    19. // 多层抽取某个指定层级的内容
    20. jsonObject = jsonObject.getJSONObject("data");
    21. jsonObject = jsonObject.getJSONObject("location");
    22. String area = jsonObject.getString("area");
    23. System.out.println("该ip的属地为:" + area);
    24. return Result.success(200, "登录成功", area);
    25. }
    26. }

     效果如下:

    第三方接口为POST请求时

    代码上与GET接口基本一致,只需要修改参数部分,以及将restTemplate.getForEntity换成restTemplate.postForEntity即可,如下:

    1. // 请求地址及参数
    2. String url = "https://api.gumengya.com/Api/IP";
    3. Map params = new HashMap();
    4. params.put("format", "json");
    5. params.put("ip", "113.24.172.71");
    6. // 请求拼接并执行
    7. ResponseEntity result = restTemplate.postForEntity(url, params, String.class);

  • 相关阅读:
    [Java]细节与使用经验
    Redis服务
    VMware Fusion 13+Ubuntu ARM Server 22.04.3在M2芯片的Mac上共享文件夹
    js数组按照id删除
    git报错:Failed to connect to 127.0.0.1 port 1080
    Spring Boot 面试热点(二)
    Unity实现帧序列
    Python均匀分布和三角形分布
    【Unity基础】4.动画Animation
    助力商家高效接单发货,震坤行物流服务再升级
  • 原文地址:https://blog.csdn.net/weixin_42966151/article/details/133771355