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"));
        }

    }
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • docker start容器失败_戴尔重装系统出现invalid

    docker start容器失败_戴尔重装系统出现invaliddocker出现GPGerror:Atleastoneinvalidsignaturewasencountered相关问题及解决方法。W:GPGerror:http://mirrors.tuna.tsinghua.edu.cn/debianbusterInRelease:Atleastoneinvalidsignaturewasencountered.E:Therepository’http://mirrors.tuna.tsinghua.edu.cn/d

    2022年10月13日
  • PHP与EXCEL PHPExcel

    PHP与EXCEL PHPExcel

  • 从tracker上获取peer列表[通俗易懂]

    从tracker上获取peer列表[通俗易懂] 从torrent文件中得到了tracker列表后,接下来的工作就是获取peer列表.tracker使用http协议.客户端向服务器发送标准的GET请求,就可以得到这个列表.tracker返回的信息是bencode编码.向tracker发送的GET请求有如下一些参数:info_hash(必须):    torrent文件中info字段的sha1.torrent文件解析器中已经计算此值,保存在CTo

  • kmplayer字幕乱码_VLC中文字幕乱码问题

    kmplayer字幕乱码_VLC中文字幕乱码问题今天拷了个《活着》,本想在熄灯之前能看完的,但是这个字幕乱码,折腾了近一个小时,边磕瓜子边google,终于解决了。我的系统是Ubuntu10.10,mplayer是没有GUI的,只能命令行播放。可能在中文环境下不会有什么问题,用加-subcpgbk的方法。但是我的系统是英文环境,所以才费了好多周折,中文一直是下划线。后来看到这篇文章:http://bbs.dospy.com/threa…

    2022年10月30日
  • nuget的原理_NuGet 跨平台插件

    nuget的原理_NuGet 跨平台插件NuGet跨平台插件NuGetcrossplatformplugins07/01/2018本文内容已添加NuGet4.8+跨平台插件支持。InNuGet4.8+supportforcrossplatformpluginshasbeenadded.这是通过生成新的插件扩展性模型实现的,该模型必须符合一组严格的操作规则。Thiswasachievedwith…

    2022年10月31日
  • Linux 测试IP和端口是否能访问[通俗易懂]

    Linux 测试IP和端口是否能访问[通俗易懂]一、使用wget判断wget是linux下的下载工具,需要先安装.用法:wgetip:port连接存在的端口连接不存在的端口二、使用telnet判断telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet.用法:telnetipport安装telnet1、检测telnet-server的rpm包是否安装……

发表回复

您的电子邮箱地址不会被公开。

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