腾讯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);
	        }
	    }

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏http://www.cnblogs.com

生成器&迭代器

一.生成器 在介绍生成器表达式之前,先看下列表表达式: 1 >>> l = [i for i in range(50) if i % 2] #生成...

353100
来自专栏技术碎碎念

LeetCode-15-3Sum

Given an array S of n integers, are there elements a, b, c in S such that a + b ...

396110
来自专栏Petrichor的专栏

tensorflow编程: Variables

tf.moving_average_variables tf.global_variables_initializer tf.local_variabl...

19610
来自专栏决胜机器学习

PHP数据结构(十二) ——静态查找表​

PHP数据结构(十二)——静态查找表 (原创内容,转载请注明来源,谢谢) 一、概念 1、查找表:由同一类型数据元素构成的集合。 ...

38770
来自专栏Python小屋

Python把列表中的数字尽量等分成n份

问题描述:假设一个列表中含有若干整数,现在要求将其分成n个子列表,并使得各个子列表中的整数之和尽可能接近。 下面的代码并没有使用算法,而是直接将原始列表分成n...

59080
来自专栏决胜机器学习

PHP数据结构(七) ——串与实现KMP算法

PHP数据结构(七)——串与实现KMP算法 (原创内容,转载请注明来源,谢谢) 一、定义 串是0个或多个字符组成的有限序列,任意连续字符组成的子序列称为子串,...

46890
来自专栏机器之心

资源 | 忘了Python关键语句?这份备忘录拯救你的记忆

Python 3 Cheat Sheet 一共包含两页,分成了多个框图,涉及基本的 Python 数据结构、数学运算、条件和循环语句、文件读写,以及异常值处理等...

13830
来自专栏五分钟学算法

每天一算:Remove Nth Node From End of List

采取双重遍历肯定是可以解决问题的,但题目要求我们一次遍历解决问题,那我们的思路得发散一下。

18430
来自专栏数据结构与算法

P3374 【模板】树状数组 1 单点修改与区间查询

题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N...

31370
来自专栏决胜机器学习

PHP数据结构(十七) ——内部排序综述

PHP数据结构(十七)——内部排序综述 (原创内容,转载请注明来源,谢谢) 一、稳定性 假设Ki=Kj(1<=i,j<=n,i!=j),且排在序列前的序列中R...

357120

扫码关注云+社区

领取腾讯云代金券