百度鹰眼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 ...
随机推荐
- js实现日期显示的一些操作
1.js获取当前日期(yyyy-mm-dd) 以下代码是获取到的当前日期: var myDate = new Date(); var year = myDate.getFullYear(); //获取 ...
- 【JS】ajax 实现无刷新文件上传
一.摘要 最近在做个东西,需要实现页面无刷新文件上传,目前看到的方法有两种 1) 通过隐藏iframe 实现页面无刷新,适用于不关心上传结果 <form target="hiddenF ...
- Jsp运行环境——Tomcat
JSP JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导.许多公司参与一起建立的 ...
- 自定义Git之配置别名
有没有经常敲错命令?比如git status?status这个单词真心不好记. 如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的. 我们只需要敲一行命令,告 ...
- ### 七种SQL JOINS
七种SQL JOINS 1.SELECT FROM TABLEA A LEFT JOIN TABLEB B ON A.Key=B.Key 2.SELECT FROM TABLEA A RIGHT JO ...
- vuex状态管理,state,getters,mutations,actons的简单使用(一)
之前的文章中讲过,组件之间的通讯我们可以用$children.$parent.$refs.props.data... 但问题来了,假如项目特别大,组件之间的通讯可能会变得十分复杂... 这个时候了我们 ...
- NYOJ--488--dfs--素数环
/* Name: NYOJ--488--素数环 Author: shen_渊 Date: 15/04/17 15:30 Description: DFS,素数打个表,37以内就够用了 */ #incl ...
- iframe中的模态框遮罩父窗口原理
关键点: css的position定位为fixed或absolute css的z-index, 最顶层的值最大如遮罩层为0那么弹出框最好是大于等于1的整数,总之记住弹出层要比遮罩的z-index值大就 ...
- 什么是IAT重定向
例壳:telock 0.98 仅允许非商业转载,转载请注明出处
- EF对于已有数据库的Code First支持
EF对于已有数据库的Code First支持 原文链接 本文将逐步介绍怎样用Code First的方式基于已有数据库进行开发.Code First支持你使用C#或者VB.Net定义类.并使用数据模型标 ...