首页 技术 正文
技术 2022年11月20日
0 收藏 454 点赞 5,185 浏览 3293 个字

因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试。
刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在。
后又试了几种方法,均提示ak参数不存在。但是ak参数明明存在的,且是正确的(可能本人参数设置问题)。
百度相关ak参数不存在问题,发现还有一部分人遇到这个问题。
经过参考对应资料,终于把基础的增删改查业务调试通过。特做简单整理,既能自我总结又能分享给万一有需要的朋友。

 import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import org.apache.commons.io.IOUtils; /**
* ClassName: YingYanUtil
* @Description: 鹰眼请求工具类
* @author ljwang
* @date 2017年9月4日
*/
public class YingYanUtil { /**
* 百度鹰眼服务器端Key
*/
public static final String BAIDU_YINGYAN_AK_S = "*********************"; /**
* 百度鹰眼服务ID
*/
public static final String BAIDU_YINGYAN_SERVICE_ID = "***************"; /**
* 百度鹰眼接口URL
*/
public static final String BAIDU_YINGYAN_URL = "http://yingyan.baidu.com/api/v3/"; /**
* 百度鹰眼请求方式(POST)
*/
public static final String BAIDU_YINGYAN_REQ_POST = "POST"; /**
* 百度鹰眼请求方式(GET)
*/
public static final String BAIDU_YINGYAN_REQ_GET = "GET"; /**
* ClassName: BaiduYingyanEntity
* @Description: 终端管理
* @author ljwang
* @date 2017年9月4日
*/
public static class BaiduYingyanEntity {
/**
* 创建entity,并赋属性信息
*/
public static final String ADD = "entity/add"; /**
* 删除entity
*/
public static final String DELETE = "entity/delete"; /**
* 更新entity属性信息
*/
public static final String UPDATE = "entity/update"; /**
* 检索符合条件的entity,返回entity属性信息和最新位置。可用于列出entity,也可用于批量查询多个entitiy的位置
*/
public static final String LIST = "entity/list";
} /**
* @Description: 请求鹰眼
* @author ljwang
* @date 2017年9月4日
*/
public static String yingYanReq(String urlReq, String param, String method) {
try {
//Get请求,拼装参数
if (BAIDU_YINGYAN_REQ_GET.equals(method)) {
urlReq = urlReq + "?" + param;
} //创建URL对象
URL url = new URL(urlReq);
//返回一个URLConnection对象,它表示到URL所引用的远程对象的连接
URLConnection urlConnection = url.openConnection(); //POST请求,写入参数
if (BAIDU_YINGYAN_REQ_POST.equals(method)) {
// 设置doOutput属性为true表示将使用此urlConnection写入数据
urlConnection.setDoOutput(true);
// 定义待写入数据的内容类型,我们设置为application/x-www-form-urlencoded类型
urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded");
// 得到请求的输出流对象
OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());
// 把数据写入请求的Body
out.write(param);
out.flush();
out.close();
} // 从服务器读取响应
InputStream inputStream = urlConnection.getInputStream();
String encoding = urlConnection.getContentEncoding();
String result = IOUtils.toString(inputStream, encoding);
System.out.println(result);
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args){ /*
* 添加entity
*/
String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.ADD;
String param = "ak=" + BAIDU_YINGYAN_AK_S +
"&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
"&entity_name=" + "鹰眼测试名称" +
"&entity_desc=" + "鹰眼测试描述";
yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_POST); /*
* 查询entity
*/
// String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.LIST;
// String param = "ak=" + BAIDU_YINGYAN_AK_S +
// "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
// "&filter=entity_names:鹰眼测试名称";
// yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_GET); /*
* 修改entity
*/
// String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.UPDATE;
// String param = "ak=" + BAIDU_YINGYAN_AK_S +
// "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
// "&entity_name=" + "鹰眼测试名称" +
// "&entity_desc=" + "鹰眼修改测试";
// yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_POST); /*
* 删除entity
*/
// String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.DELETE;
// String param = "ak=" + BAIDU_YINGYAN_AK_S +
// "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
// "&entity_name=" + "鹰眼测试名称";
// yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);
}
}
上一篇: Python练习28
下一篇: JMockit使用总结
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,817
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899