您的位置:首页 > 编程语言 > Java开发

百度鹰眼Java接口调用增删改查实例

2017-09-05 15:05 204 查看
因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试。

刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在。

后又试了几种方法,均提示ak参数不存在。但是ak参数明明存在的,且是正确的(可能本人参数设置问题)。

百度相关ak参数不存在问题,发现还有一部分人遇到这个问题。

经过参考对应资料,终于把基础的增删改查业务调试通过。特做简单整理,既能自我总结又能分享给万一有需要的朋友。

1 import java.io.IOException;
2 import java.io.InputStream;
3 import java.io.OutputStreamWriter;
4 import java.net.URL;
5 import java.net.URLConnection;
6 import org.apache.commons.io.IOUtils;
7
8 /**
9  * ClassName: YingYanUtil
10  * @Description: 鹰眼请求工具类
11  * @author ljwang
12  * @date 2017年9月4日
13  */
14 public class YingYanUtil {
15
16     /**
17      * 百度鹰眼服务器端Key
18      */
19     public static final String BAIDU_YINGYAN_AK_S = "*********************";
20
21     /**
22      * 百度鹰眼服务ID
23      */
24     public static final String BAIDU_YINGYAN_SERVICE_ID = "***************";
25
26     /**
27      * 百度鹰眼接口URL
28      */
29     public static final String BAIDU_YINGYAN_URL = "http://yingyan.baidu.com/api/v3/";
30
31     /**
32      * 百度鹰眼请求方式(POST)
33      */
34     public static final String BAIDU_YINGYAN_REQ_POST = "POST";
35
36     /**
37
4000
* 百度鹰眼请求方式(GET)
38      */
39     public static final String BAIDU_YINGYAN_REQ_GET = "GET";
40
41
42     /**
43      * ClassName: BaiduYingyanEntity
44      * @Description: 终端管理
45      * @author ljwang
46      * @date 2017年9月4日
47      */
48     public static class BaiduYingyanEntity {
49         /**
50          * 创建entity,并赋属性信息
51          */
52         public static final String ADD = "entity/add";
53
54         /**
55          * 删除entity
56          */
57         public static final String DELETE = "entity/delete";
58
59         /**
60          * 更新entity属性信息
61          */
62         public static final String UPDATE = "entity/update";
63
64         /**
65          * 检索符合条件的entity,返回entity属性信息和最新位置。可用于列出entity,也可用于批量查询多个entitiy的位置
66          */
67         public static final String LIST = "entity/list";
68     }
69
70
71     /**
72      * @Description: 请求鹰眼
73      * @author ljwang
74      * @date 2017年9月4日
75      */
76     public static String yingYanReq(String urlReq, String param, String method) {
77         try {
78             //Get请求,拼装参数
79             if (BAIDU_YINGYAN_REQ_GET.equals(method)) {
80                 urlReq = urlReq + "?" + param;
81             }
82
83             //创建URL对象
84             URL url = new URL(urlReq);
85             //返回一个URLConnection对象,它表示到URL所引用的远程对象的连接
86             URLConnection urlConnection = url.openConnection();
87
88             //POST请求,写入参数
89             if (BAIDU_YINGYAN_REQ_POST.equals(method)) {
90                 // 设置doOutput属性为true表示将使用此urlConnection写入数据
91                 urlConnection.setDoOutput(true);
92                 // 定义待写入数据的内容类型,我们设置为application/x-www-form-urlencoded类型
93                 urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded");
94                 // 得到请求的输出流对象
95                 OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());
96                 // 把数据写入请求的Body
97                 out.write(param);
98                 out.flush();
99                 out.close();
100             }
101
102             // 从服务器读取响应
103             InputStream inputStream = urlConnection.getInputStream();
104             String encoding = urlConnection.getContentEncoding();
105             String result = IOUtils.toString(inputStream, encoding);
106             System.out.println(result);
107             return result;
108         } catch (IOException e) {
109             e.printStackTrace();
110             return null;
111         }
112     }
113
114     public static void main(String[] args){
115
116         /*
117          * 添加entity
118          */
119         String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.ADD;
120         String param = "ak=" + BAIDU_YINGYAN_AK_S +
121                        "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
122                        "&entity_name=" + "鹰眼测试名称" +
123                        "&entity_desc=" + "鹰眼测试描述";
124         yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);
125
126         /*
127          * 查询entity
128          */
129 //        String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.LIST;
130 //        String param = "ak=" + BAIDU_YINGYAN_AK_S +
131 //                       "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
132 //                       "&filter=entity_names:鹰眼测试名称";
133 //        yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_GET);
134
135         /*
136          * 修改entity
137          */
138 //        String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.UPDATE;
139 //        String param = "ak=" + BAIDU_YINGYAN_AK_S +
140 //                       "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
141 //                       "&entity_name=" + "鹰眼测试名称" +
142 //                       "&entity_desc=" + "鹰眼修改测试";
143 //        yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);
144
145         /*
146          * 删除entity
147          */
148 //        String urlReq = BAIDU_YINGYAN_URL + BaiduYingyanEntity.DELETE;
149 //        String param = "ak=" + BAIDU_YINGYAN_AK_S +
150 //                       "&service_id=" + BAIDU_YINGYAN_SERVICE_ID +
151 //                       "&entity_name=" + "鹰眼测试名称";
152 //        yingYanReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);
153     }
154 }


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: