以内容审核为例
1、首先得有一个百度开发者账户
2、搜索百度智能云,选择第一个,注册并登陆
3、下边这个就是百度智能云平台了,点击控制台
4、控制台左侧展开全部功能,选择人工智能下的人工审核
5、在概览下单击创建应用
6、起个应用名称,最好使用英文,应用类型默认即可,然后给个描述,创建!
7、创建完成,在应用列表中查看详情,也就是在应用列表中点击操作中下的管理
8、详情页就可看到我们的AK、SK参数,什么时候需要什么时候登录百度智能云平台来看就好
9、帮助文档
10、还有对应语言的SDK
11、下载相对应的包加入到项目中即可
12、如果是maven项目的话,需要添加依赖,可做如下操作
13、选择上图的第一个点进去,输入AIP搜索,进入到下方的AIP JAVA SDK
14、进去之后,各种版本的SDK任君选择
15、我们以上方红色箭头标注的为例,点击进入之后
16、加入到我们的POM文件中即可
17、创建应用完成之后,我们在Java代码中来测试我们的百度审核API接口是否可以掉通,实例代码如下
- 请求封装
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
/**
* http请求
* @author 32249
*
*/
public class HttpUtil {
// 发送请求
/*
* @发送消息
* @return 结果
*
* */
public static String post(String requestUrl, String accessToken, String params)
throws Exception
{
//设置contentType
String contentType = "application/x-www-form-urlencoded";
return HttpUtil.post(requestUrl, accessToken, contentType, params);
}
public static String post(String requestUrl, String accessToken, String contentType, String params)
throws Exception
{
//设置编码格式为UTF-8
String encoding = "UTF-8";
if (requestUrl.contains("nlp"))
{
//如果向使用NLP,就要使用GBK编码,这个是百度api是必须要求的
encoding = "GBK";
}
//返回
return HttpUtil.post(requestUrl, accessToken, contentType, params, encoding);
}
public static String postGeneralUrl(String generalUrl, String contentType, String params, String encoding)
throws Exception
{
//构造URL
URL url = new URL(generalUrl);
//构造HttpURLConnection
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
//设置Content-Type
connection.setRequestProperty("Content-Type", contentType);
//设置连接信息
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setUseCaches(false);
connection.setDoOutput(true);
connection.setDoInput(true);
//发送请求请求内容
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.write(params.getBytes(encoding));
out.flush();
//关闭
out.close();
//连接
connection.connect();
//将请求的头打印出来
Map<String, List<String>> headers = connection.getHeaderFields();
for (String key : headers.keySet()) {
System.err.println(key + "--->" + headers.get(key));
}
BufferedReader in = null;
//得到结果
in = new BufferedReader(new InputStreamReader(connection.getInputStream(), encoding));
String result = "";
String getLine;
//将结果取出来
while ((getLine = in.readLine()) != null) {
result += getLine;
}
in.close();
//将结果打印出来,返回结果
System.err.println("result:" + result);
//返回结果
return result;
}
/*
* @
*
* */
public static String post(String requestUrl, String accessToken, String contentType, String params, String encoding)
throws Exception {
//构造请求url,将请求信息写入url中
String url = requestUrl + "?access_token=" + accessToken;
//返回
return HttpUtil.postGeneralUrl(url, contentType, params, encoding);
}
- 调用
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import org.json.JSONObject;
import palmhaidian.util.HttpUtil;
public class Main6 {
public static void main(String[] args)
{
Main6 m = new Main6();
String access_token=m.gettoken();
System.out.println(access_token);
//String access_token = "";
try {
m.get_text("你是个王八蛋吗?", "https://aip.baidubce.com/rest/2.0/antispam/v2/spam", access_token);
} catch (Exception e) {
e.printStackTrace();
}
}
public String gettoken() {
// 官网获取的 API Key 更新为你注册的
String clientId = "BhVBrZNxRZTGf7SCyGhCiw9c";
// 官网获取的 Secret Key 更新为你注册的
String clientSecret = "w2rV6yMU1EUBSIKy2Tfrixbs7dZjrfWH";
return getAuth(clientId, clientSecret);
}
public static String getAuth(String ak, String sk) {
//
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=" + ak
// 3. 官网获取的 Secret Key
+ "&client_secret=" + sk;
try {
URL realUrl = new URL(getAccessTokenUrl);
// 打开和URL之间的连接
HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
// 获取所有响应头字段
//Map<String, List<String>> map = connection.getHeaderFields();
// 定义 BufferedReader输入流来读取URL的响应
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String result = "";
String line;
while ((line = in.readLine()) != null) {
result += line;
}
/**
* 返回结果示例
*/
JSONObject jsonObject = new JSONObject(result);
String access_token = jsonObject.getString("access_token");
return access_token;
} catch (Exception e) {
System.err.printf("获取token失败!");
e.printStackTrace(System.err);
}
return null;
}
public String get_text(String content,String url,String accessToken)
{
String param;
String data;
try {
//设置请求的编码
param = "content="+URLEncoder.encode(content,"UTF-8");
//发送并取得结果
data = HttpUtil.post(url, accessToken, param);
System.out.println(data);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
18、测试,执行上边代码得到:
如若有误,请指正,共同学习