百度鹰眼Java接口调用增删改查实例
因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试。
刚开始使用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);
}
}
百度鹰眼Java接口调用增删改查实例的更多相关文章
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)
1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- yii2.0增删改查实例讲解
yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- java DMO及增删改查代码的自动生成
在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了 ...
- 【简易版】Java ArrayList(增删改查)
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...
- Java学生信息增删改查(并没用数据库)
一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...
- MongoDB(二)-- Java API 实现增删改查
一.下载jar包 http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ 二.代码实现 package com.xbq.mongo ...
随机推荐
- (转)JAVA排序汇总
JAVA排序汇总 package com.softeem.jbs.lesson4; import java.util.Random; /** * 排序测试类 * * 排序算法的分类如下: * 1.插入 ...
- j2ee中的2是什么意思
J2EE里面的2是什么意思 1998年Java 1.2版本发布,1999年发布Java 1.2的标准版,企业版,微型版三个版本,为了区分这三个版本,分别叫做Java2SE,Java2EE,Java2M ...
- Java实现简单文件过滤器
输入路径查找该路径下的指定文件类型的文件 代码思路: 想要循环遍历文件夹下所有子文件夹,就要用到递归. 首先判断路径是否存在: 是:获取文件 判断是否文件夹: 是:调用自身,继续获取子文件夹下内容 否 ...
- [POI2008]枪战Maf
[POI2008]枪战Maf 题目 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪.因此,对于不同的开枪顺序,最后死的 ...
- C++ STL set详解
一.解释 p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; text-align: justi ...
- S2-032代码执行
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2的体系结构与Struts 1的体系结构差别 ...
- echarts 支持svg格式
今天研究了下echarts的svg格式.发现用ai生成svg格式的图片,echarts上面显示不了. 经过了多次的百度和谷歌终于找到了用Method Draw画出来的svg格式,echarts就能加载 ...
- Javascript DOM 编程艺术———总结-1
第一章: 1.DOM:是一套对文档内容进行抽象和概念化的方法,是一种API. 2.W3C对DOM的定义:一个与系统平台和编程语言无关的借口程序和脚本可以通过这个接口动态的访问和修改文档内容,结构和样式 ...
- Zabbix监控nginx性能
编辑nginx的配置文件nging #配置ngx_status location /nginx_status{ stub_status on; access_log off; } #重启nginx # ...
- javascript 用Activex方法调用数据库中的数据,只可用于IE
// JavaScript source code //创建数据库连接对象 var conn = new ActiveXObject("ADODB.Connection"); // ...