快速入门
参考官方案例(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;
public class AuthService {
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));
}
public static String getAuth() {
// 官网获取的 API Key 更新为你注册的
String clientId = " 更新为你注册的";
// 官网获取的 Secret Key 更新为你注册的
String clientSecret = " 更新为你注册的";
flag = true;
return getAuth(clientId, clientSecret);
}
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> 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信息



