API接口调用

API网关设计:

一种是常用的基于HTTP网络协议

另一种RPC调用(当下火的微服务spring cloud和之前的Dubbo框架)

不同系统之间互调时,为达到调用方确保被授权,需提供被调方要求的token

以下是百度API接口的token获取代码

public static void main(String[] args) {
    String user_key = "d520c05ea2ab40568f119154ac7de67f";   //实际使用时客户需修改为自己的user_key
    String user_secret = "825a1efa5b29c29272ae8a6c5286fdrf";   //实际使用时客户需修改为自己的user_secret
    long timestamp = Integer.valueOf(String.valueOf(System.currentTimeMillis()/1000));
    String data = user_key + timestamp;
    String hmac = encode(data, user_secret);
    System.out.println(hmac);

}
private static String toHexString(byte[] bytes) {
    Formatter formatter = new Formatter();
    for (byte b : bytes) {
        formatter.format("%02x", b);

    }
    return formatter.toString();

}
private static String encode(String data, String key) {
    String token = null;
    try {
        SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), "HmacSHA1");
        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(signingKey);
        token = toHexString(mac.doFinal(data.getBytes()));
    } catch (Exception e) {
        e.printStackTrace();

    }
    return token;
}
还有就是公司对应的java.security.*包中的UUID类
String tokenKey = UUID.randomUUID().toString().toLowerCase().replaceAll("-", "") + "|" + DateUtils.getTimestamp().getTime();
        String newToken = UserPassword.getInstance().encrypt(tokenKey);
而token的获取也需要提供项目id和secret秘钥(id实际为事前分配给的,类似于百度的初测分配id)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值