百度鹰眼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 ...
随机推荐
- 聊天类APP功能测试总结
做聊天类的APP 测试已经有一段时间了,也许哪天就不做了,趁今天轻松点,记录下来. 聊天类的APP都差不多,不管是微信,还是米聊,还是QQ,如果抓住了共性,测试的点都差不太多. 我用编程的术语来比方功 ...
- LFCP
场景:总结LFCP项目开发中遇到的问题! 1 运营支撑 项目结构: 1.1 hessian配置 服务端实现: 客户端调用: 1.2 问题排查 之前一段时间,运营支撑项目能够正常运行,中间有其它事情要做 ...
- (转)JAVA排序汇总
JAVA排序汇总 package com.softeem.jbs.lesson4; import java.util.Random; /** * 排序测试类 * * 排序算法的分类如下: * 1.插入 ...
- Oracle 11g RAC 修改各类IP地址
Oracle 11g RAC 修改各类IP地址 首先,我们都知道Oracle 11g RAC中的IP主要有:Public IP.VIP.SCAN VIP.Private IP这几种. 一般这类改IP地 ...
- listView属性随笔--不断增加中。
对于一个控件的认识总是会随着时间的推移,而变的逐渐深刻. 简单的就 android:layout_height:属性来说给的数值不同就会有不同的效果,有些时候你根本想不到是跟这个属性的设置有关. 有时 ...
- 冒泡排序和选择排序(Go语言实现)
冒泡排序和选择排序是排序算法中比较简单和容易实现的算法.冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端.而选择排序的思想也很直观:每一次排序 ...
- PHP输出函数print, printf, sprintf的区别
PHP中常用的字符串输出方式是:使用echo和print两种方法来显示字符串.如果涉及格式化输出操作,还可以试用printf和sprintf函数. 一.先说echo和print两种方法 print的语 ...
- 如何查看appache的端口是否被占用
win + R 快捷键输入 cmd 打开命令行. 输入 netstat -ano 查看端口使用情况 Ctrl + Shift + Esc 打开 windows 任务管理器,依次单击 [查看][ 选择列 ...
- 引水入城[NOI2010 ]
题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N行M列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. 为了 ...
- ASP.NET Core MVC – Caching Tag Helpers
简介 缓存可以大大提高应用程序加载时间和响应速度.我们可以使用缓存Tag Helpers缓存不会频繁更改的HTML内容. 在上一篇文章中,我们谈到了Tag Helpers,演示Tag Helpers能 ...