java springboot中调用第三方接口「建议收藏」

java springboot中调用第三方接口「建议收藏」调用第三方接口,记录下自己写的不然忘记。依然是废话不喜欢多说,上代码:application.yml配置server:port:7888servlet:context-path:/genetomcat:remote-ip-header:x-forward-foruri-encoding:UTF-8max-threa…

大家好,又见面了,我是你们的朋友全栈君。

调用第三方接口,记录下自己写的不然忘记。依然是废话不喜欢多说,上代码:

application.yml配置

server:
    port: 7888
    servlet:
        context-path: /gene
tomcat:

    remote-ip-header: x-forward-for
    uri-encoding: UTF-8
    max-threads: 10
    background-processor-delay: 30
system:
	#第三方接口
    huiCalculatedOrderUrl: http://*******

工具类:

@Component  
@Data  //简写get  set 的注解
@ConfigurationProperties(prefix="system") //接收application.yml中的myProps下面的属性  
public class MyProps {
	public String huiCalculatedOrderUrl;
	}

调用的Controller:

@Slf4j
@RestController
@RequestMapping("/huiCalculatedOrder")
public class HuiCalculatedOrderController {

//可以用 spring boot 的restTemplate 但是感觉 hutool 的 工具类已经封装好的,比较方便
    @Autowired
    private RestTemplate restTemplate;
    
    @Autowired
    private MyProps myProps;

    /**
     * 授权 获取第三方的token 
     * @throws Exception
     */
    @PostMapping("/login")
    public String getHuiCalculatedOrderToken() throws Exception {
    //把第三方账号密码封装到map
        Map<String,Object> paramsMap=new HashMap<String,Object>();
        paramsMap.put("username", "123");
        paramsMap.put("password", "123");
        String tokenStr="";
        // 直接丢地址 和账号密码获取第三方的token,顺便踹下错误,方便甩锅
        try {
            tokenStr= HttpUtil.post(myProps.getHuiCalculatedOrderUrl()+"/auth2/token",paramsMap);
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("第三方接口访问异常");
        }
      //用fastJson 解析一波  直接返回
        JSONObject object=JSON.parseObject(tokenStr);
        System.out.println(JSON.toJSONString(object));
        String tokenObj = object.getString("token");
        System.out.println(tokenObj);
        JSONObject token = JSON.parseObject(tokenObj);
        System.out.println("token-->"+token.getString("token"));
        return token.getString("token");
    }
    /**
     * 调用第三方接口,下单
     *    说明下: ApiReturnObject    ApiReturnUtil 是我们自己项目封装的返回 无需理会
     */
    @PostMapping("/order")
    public ApiReturnObject getgeneOrder(HuiCalculatedOrder huiCalculatedOrder) {
    //把需要传的参数封装到map
        Map<String,Object> paramsMap=new HashMap<String,Object>();
        paramsMap.put("orderNum",huiCalculatedOrder.getOrderNum());
        paramsMap.put("checkNum",huiCalculatedOrder.getCheckNum());
        String post = null;
        try {
        	//因为第三方规定:header  需要传 token , 所以用下面的链式构建
             //post = HttpUtil.post(myProps.getHuiCalculatedOrderUrl() + "/gene/order/create", paramsMap);

            //链式构建请求,用的是hutool 工具类
            post = HttpRequest.post(myProps.getHuiCalculatedOrderUrl() + "/gene/order/create")
                    .header("token", getHuiCalculatedOrderToken())  //value  是 上面获取的token
                    .form(paramsMap).timeout(20000).execute().body();

        }catch (Exception e){
            e.printStackTrace();
            return ApiReturnUtil.error("第三方接口错误",e.getMessage());
        }
        log.info(post);
        JSONObject jsonbody= JSON.parseObject(post);   //使用了fastJson 工具类
        if ("00".equals(jsonbody.getString("errorCode")) ){

            return ApiReturnUtil.success("下单成功",post);
        }else {
            return ApiReturnUtil.error(jsonbody.getString("errorMessage"));
        }

    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135659.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vscode 前端常用插件推荐「建议收藏」

    1.vscode简介vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器。 当前市面上常用的轻型代码编辑器主要是:sublime,notepad++,editplus,atom这几种。 比起notepad++、editplus,vscode集成了许多IDE才具有的功能,比起它们更像一个代码编辑器; 比起sublime,…

    2022年4月7日
    59
  • 电容是根据什么分类_电容的分类与识别图片

    电容是根据什么分类_电容的分类与识别图片一、瓷介电容器(CC)1.结构用陶瓷材料作介质,在陶瓷表面涂覆一层金属(银)薄膜,再经高温烧结后作为电极而成。瓷介电容器又分1类电介质(NPO、CCG));2类电介质(X7R、2X1)和3类电介质(Y5V、2F4)瓷介电容器。2.特点1类瓷介电容器具有温度系数小、稳定性高、损耗低、耐压高等优点。最大容量不超过1000pF,常用的有CC1、CC2、CC18A、CC11、CCG等系…

    2022年8月22日
    6
  • 全球ipv4地址耗尽了_ip起始地址和结束地址

    全球ipv4地址耗尽了_ip起始地址和结束地址重要消息:就在2019/11/25UTC+115:35时,一封来自欧洲RIPENCC的邮件中得到确认:全球的IPv4地址已经彻底耗尽。IPv4大家应该很熟悉了,就是我们平常所知道的IP地址,如:192.168.1.168。其实,很多年前就在说IPv4要用完了,只是没想到这天居然来得这么早,只能说互联网发展真的太快了。对于IPv4地址耗尽的问题,大家也不用担心…

    2025年5月23日
    2
  • linux系统解压缩rar文件夹,linux下解压缩rar文件的办法

    linux系统解压缩rar文件夹,linux下解压缩rar文件的办法linux下如何解压缩rar文件呢?请看下面的介绍。一、系统环境1.1系统环境实验环境一:CentOSrelease5.5(Final)2.6.18-194.el5x86_64GNU/Linux实验环境二:CentOSrelease5.4(Final)2.6.18-164.el5i686GNU/Linux1.2命令查看方法:[root@oldboytools]#cat…

    2022年7月27日
    5
  • A4988驱动步进电机「建议收藏」

    A4988驱动步进电机「建议收藏」A4988一般用arduino来驱动,我是用STM32F103驱动的。首先推一个网页,https://www.pololu.com/product/1182,上面有比较详细和专业的说明,还有一个关于限制电流使细分更精确的视频讲解,总之,专业。然后推一个datasheet,https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver

    2022年6月16日
    21
  • Adobe Flash Player 未能正常运行问题「建议收藏」

    Adobe Flash Player 未能正常运行问题「建议收藏」问题描述笔者使用的QQ浏览器在打开含有Flash的网页时经常出现如下问题:提示:您的AdobeFlashPlayer版本太旧,可能会有安全性风险。建议您升级到最新版本。随后出现:提示:必要的系统组件未能正常运行,请修复AdobeFlashPlayer点击立即修复,安装最新的AdobeFlashPlayer,结果没有任何作用。-原因探寻按照网上的现有方法,都说是因为FlashHelperService进程没能正常启动,或者是直接把FlashHelperS

    2022年5月20日
    178

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号