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

来源:互联网 发布:易成运营商数据分析 编辑:程序博客网 时间:2024/06/01 17:43

因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试。
刚开始使用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      * 百度鹰眼请求方式(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          * 添加entity118          */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          * 查询entity128          */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          * 修改entity137          */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          * 删除entity147          */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 }

 

原创粉丝点击