腾讯AI-JavaAPI示例代码

时间:2022-04-22
本文章向大家介绍腾讯AI-JavaAPI示例代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/tencent

SIGN签名生成算法-JAVA版本

	/**

	 * SIGN签名生成算法-JAVA版本

	 * @param HashMap<String,String> params 请求参数集,所有参数必须已转换为字符串类型

	 * @return 签名

	 * @throws IOException

	 */
	public static String getSignature(HashMap<String,String> params) throws IOException {
	        // 先将参数以其参数名的字典序升序进行排序

	        Map<String, String> sortedParams = new TreeMap<>(params);
	        Set<Map.Entry<String, String>> entrys = sortedParams.entrySet();
	        // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起

	        StringBuilder baseString = new StringBuilder();
	        for (Map.Entry<String, String> param : entrys) {
	            //sign参数 和 空值参数 不加入算法

	            if(param.getValue()!=null && !"".equals(param.getKey().trim()) && !"sign".equals(param.getKey().trim()) && !"".equals(param.getValue().trim())) {
	                baseString.append(param.getKey().trim()).append("=").append(URLEncoder.encode(param.getValue().trim(),"UTF-8")).append("&");
	            }
	        }
	        System.err.println("未拼接APPKEY的参数:"+baseString.toString());
	        if(baseString.length() > 0 ) {
	            baseString.deleteCharAt(baseString.length()-1).append("&app_key="+TencentAPI.APP_KEY_AI);
	        }
	        System.err.println("拼接APPKEY后的参数:"+baseString.toString());
	        // 使用MD5对待签名串求签

	        try {
	        	String sign = MD5.getMD5(baseString.toString());
	        	return sign;
	        } catch (Exception ex) {
	            throw new IOException(ex);
	        }
	    }