Java教程

百度ai人脸 学习(java向)

本文主要是介绍百度ai人脸 学习(java向),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

快速入门

参考官方案例(https://ai.baidu.com/ai-doc/ANTIPORN/ik3h6xdze)

第一步:下载java sdk

SDK下载_文字识别SDK_语音识别SDK-百度AI开放平台

接下来先使用来写第一个入门案例——获取百度AI Token

         

我使用的IDEA开发工具,新建一个普通的java项目即可

然后注意下一张圈起来的部分,要新建一个lib目录,然后把刚才的压缩文件解压完,全部复制到lib里面

 

然后还有右键选择添加为库,看到jar包左边有一些三角形可扩展按钮导入完成jar包了

然后如图建好项目结构

并新建好我们的入门类

 

 

 然后复制以下代码

package com.baidu.aip.aiFaceTest.getToken;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
/**
 * 获取token类
 * 
 * token过期处理 2018.10.24 16:34 参考官方jar
 */
public class AuthService {
 
	/**
	 * 判断token是否过期
	 */
	private static Calendar expireDate = null;
	private static boolean flag = false; // 是否已经获取过了
 
	public static Boolean needAuth() {
		Calendar c = Calendar.getInstance();
		c.add(5, 1); // 当前日期加一天
		return Boolean.valueOf(!flag || c.after(expireDate));
	}
 
	/**
	 * 获取权限token
	 * 
	 * @return 返回示例: { "access_token":
	 *         "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
	 *         "expires_in": 2592000 }
	 */
	public static String getAuth() {
		// 官网获取的 API Key 更新为你注册的
		String clientId = " 更新为你注册的";
		// 官网获取的 Secret Key 更新为你注册的
		String clientSecret = " 更新为你注册的";
 
		flag = true;
 
		return getAuth(clientId, clientSecret);
	}
 
	/**
	 * 获取API访问token 该token有一定的有效期,需要自行管理,当失效时需重新获取.
	 * @param clientId  - 百度云官网获取的 API Key         
	 * @param clientSecret - 百度云官网获取的 Securet Key       
	 * @return assess_token   
	 */
	private static String getAuth(String clientId, String clientSecret) {
		// 获取token地址
		String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
		String getAccessTokenUrl = authHost
				// 1. grant_type为固定参数
				+ "grant_type=client_credentials"
				// 2. 官网获取的 API Key
				+ "&client_id=" + clientId
				// 3. 官网获取的 Secret Key
				+ "&client_secret=" + clientSecret;
 
		try {
			URL realUrl = new URL(getAccessTokenUrl);
			// 打开和URL之间的连接
			HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
			connection.setRequestMethod("POST");
			connection.connect();
 
			// 获取所有响应头字段
			Map<String, List<String>> map = connection.getHeaderFields();
			// 遍历所有的响应头字段
			for (String key : map.keySet()) {
				System.err.println(key + "--->" + map.get(key));
			}
			// 定义 BufferedReader输入流来读取URL的响应
			BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
			String result = "";
			String line;
			while ((line = in.readLine()) != null) {
				result += line;
			}
			/**
			 * 返回结果示例
			 */
			System.err.println("result:" + result);
			JSONObject jsonObject = new JSONObject(result);
			String access_token = jsonObject.getString("access_token");
 
			Integer expires_in = Integer.valueOf(jsonObject.getInt("expires_in"));
 
			System.out.println("expires_in:" + expires_in);
 
			Calendar c = Calendar.getInstance();
			System.out.println("现在日期:" + c.get(c.YEAR) + "/" + c.get(c.MONTH) + "/" + c.get(c.DAY_OF_MONTH));
			c.add(13, expires_in.intValue());
			System.out.println("过期日期:" + c.get(c.YEAR) + "/" + c.get(c.MONTH) + "/" + c.get(c.DAY_OF_MONTH));
			expireDate = c;
 
			return access_token;
 
		} catch (Exception e) {
			System.err.printf("获取token失败!");
			e.printStackTrace(System.err);
		}
		return null;
	}
 
	public static void main(String[] args) {
 
		System.out.println("flag:" + flag);
		
		System.out.println("needAuth():" + needAuth().booleanValue());
		
		//第一次请求
		if (needAuth().booleanValue()) {
			String access_token = getAuth();
			
			System.out.println("flag:" + flag);
			
			System.out.println("access_token:" + access_token);
		} else {
			System.out.println("token未过期,不需要重新获取");
		}
		
		//第二次请求
		if (needAuth().booleanValue()) {
			String access_token = getAuth();
			
			System.out.println("flag:" + flag);
			
			System.out.println("access_token:" + access_token);
		} else {
			System.out.println("token未过期,不需要重新获取");
		}
 
	}
 
}

要注意你的clientId和clientSecret要更换为你的应用的apikey 和secret key

如图

 

 然后点击运行即可获取你的token信息

 

 

这篇关于百度ai人脸 学习(java向)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!