java 八爪鱼API调取
今天来个需求,需要把八爪鱼任务发布到云平台执行。同时我们可以查看任务的状态。下面是我写的关于调取的post请求。
每一次调取前,都需要获取一次token。下面上代码
一、post请求,1.获取token,2.请求删除历史采集数据,将token加入请求头。
package com.dossp.common.handler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpPost {
/**
* 向指定 URL 发送POST方法的请求
*
* @param httpUrl
* 发送请求的 URL
* @param param
* 请求参数是json
* @return 所代表远程资源的响应结果
*/
public static String doPost(String httpUrl, String param,String token) {
HttpURLConnection connection = null;
InputStream is = null;
OutputStream os = null;
BufferedReader br = null;
String result = null;
try {
URL url = new URL(httpUrl);
// 通过远程url连接对象打开连接
connection = (HttpURLConnection) url.openConnection();
// 设置连接请求方式
connection.setRequestMethod("POST");
// 设置连接主机服务器超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取主机服务器返回数据超时时间:60000毫秒
connection.setReadTimeout(60000);
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
connection.setDoOutput(true);
// 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
connection.setDoInput(true);
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
connection.setRequestProperty("Content-Type", "application/json, text/json");
// 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
connection.setRequestProperty("Authorization", "Bearer "+token);
// 通过连接对象获取一个输出流
os = connection.getOutputStream();
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
// os.write(param.getBytes());
// 通过连接对象获取一个输入流,向远程读取
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer sbf = new StringBuffer();
String temp = null;
// 循环遍历一行一行读取数据
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != os) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 断开与远程地址url的连接
connection.disconnect();
}
return result;
}
public static String doPostt(String httpUrl, String param) {
HttpURLConnection connection = null;
InputStream is = null;
OutputStream os = null;
BufferedReader br = null;
String result = null;
try {
URL url = new URL(httpUrl);
// 通过远程url连接对象打开连接
connection = (HttpURLConnection) url.openConnection();
// 设置连接请求方式
connection.setRequestMethod("POST");
// 设置连接主机服务器超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取主机服务器返回数据超时时间:60000毫秒
connection.setReadTimeout(60000);
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
connection.setDoOutput(true);
// 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
connection.setDoInput(true);
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
// connection.setRequestProperty("Authorization", "Bearer "+token);
// 通过连接对象获取一个输出流
os = connection.getOutputStream();
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
os.write(param.getBytes());
// 通过连接对象获取一个输入流,向远程读取
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer sbf = new StringBuffer();
String temp = null;
// 循环遍历一行一行读取数据
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != os) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 断开与远程地址url的连接
connection.disconnect();
}
return result;
}
}
二、1.请求token参数拼接
package com.dossp.common.vo;
import com.dossp.common.handler.HttpPost;
public class RobootApi {
private static final String ROBOT_API_HOSTT = "https://dataapi.bazhuayu.com/token";
private String buildParams(String Word) {
String string = "username=xxxx&password=xxxx&grant_type=password";
return string;
}
public String getRobotResult(String Word) {
return HttpPost.doPostt(ROBOT_API_HOSTT, buildParams(Word));
}
}
2.请求删除数据,参数拼接
package com.dossp.common.vo;
import com.dossp.common.handler.HttpPost;
public class RobotApi {
private static final String ROBOT_API_HOST = "https://dataapi.bazhuayu.com/api/task/RemoveDataByTaskId?taskId=a4a8937d-b421-4e6a-94dc-a0d37edef30f";
private String buildParams(String Word) {
// String string = "taskId=a4a8937d-b421-4e6a-94dc-a0d37edef30f&offset=0&size=1000";
return "";
}
public String getRobotResult(String Word,String token) {
return HttpPost.doPost(ROBOT_API_HOST, buildParams(Word),token);
}
}
三、main方法
package com.dossp.licence.system.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dossp.common.vo.RobootApi;
import com.dossp.common.vo.RobotApi;
public class Main {
public static void main(String[] args) {
RobootApi apid = new RobootApi();
RobotApi api = new RobotApi();
//先获取token,然后拿着token放入请求头
String token= apid.getRobotResult("");
JSONObject jsonobjt = JSON.parseObject(token);
String resultt = jsonobjt.getString("access_token");
System.out.println(resultt+"----resultt");
//返回请求删除八爪鱼数据结果
String backString = api.getRobotResult("",resultt);
System.out.println(backString+"-----backString");
JSONObject jsonobj = JSON.parseObject(backString);
String result = jsonobj.getString("error");
System.out.println(result+"-----result");
// JSONArray result = jsonobj.getJSONArray("dataList");
// for (int i = 0; i < result.size(); i++) {
// System.out.println(result.getJSONObject(i));
// }
// }
}
}
java 八爪鱼API调取相关推荐
- 我也没想到,Java开发 API接口可以不用写 Controller了
大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得 缘起 先说一下我为什么会使用这个工具? 最近新启动一个项目,业务并不算复杂,那种典型的管理 ...
- Java的API及Object类、String类、字符串缓存区
Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Object:Object类是Java语言中的根类,即所有类的父类. equ ...
- Java Persistence API中的FetchType LAZY和EAGER之间的区别?
我是Java Persistence API和Hibernate的新手. Java Persistence API中的FetchType.LAZY和FetchType.EAGER什么区别? #1楼 我 ...
- Java 常用API的运用,效率及技巧
1. Java面向对象基本概念 2. System 3. String, StringBuffer 4. 数值,字符,布尔对象与简单类型的操作 5. Class ...
- mq 接口 java_Rabbitmq Java Client Api详解
AMQP AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现. 基础概念快速入门 每个rabbitmq-server叫做一个Broker,等着tcp连接进入. 在rabbi ...
- 关于 Java Collections API 您不知道的 5 件事--转
第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things2.html 对于很多 Java 开发人员来说,Java Collections A ...
- JAVA EXCEL API详解
2019独角兽企业重金招聘Python工程师标准>>> 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易 ...
- es dsl java api_求帮助将dsl翻译为java的API
前面的query都会写java的api,但是后面的aggs的嵌套就不知道怎么写了.es版本为5.3.3 GET /realty_assistant/phoneinoutcallrecord/_sear ...
- Java Stream API性能测试
Java Stream API性能测试 已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟. 为保证测试 ...
最新文章
- python拟合求参_机器学习作业(四)神经网络参数的拟合——Python(numpy)实现
- 卷积神经网络理解及1*1卷积核的作用
- 英雄联盟手游超燃测试服务器维护,《英雄联盟手游》超燃测试放号开启,轻松教你获得测试资格...
- 点云网络的论文理解(二)- PointNet的pytorch复现
- 关于Spring的构造函数,init-method,和依赖注入的先后顺序
- 2022-02-03--银河麒麟-银河麒麟v4与.netcore安装
- 【C++11新特性】 C++11智能指针之unique_ptr
- 正则基础之——反向引用
- 学计算机就业靠谱吗,2018年计算机专业就业怎么样?
- 解决MSChart底部横坐标显示不全的问题
- (05)System Verilog 数组类型详解
- js获取今天剩余时间_js动画,setTimeout/setInterval的不准确
- 最大乘积java_在Java中查找负数的最大乘积
- 2017腾讯校招面试回忆 成功拿到offer
- 终极事务处理(XTP,Hekaton)——万能大招?
- initramfs详解----设备文件系统
- http://www.cnblogs.com/wayfarer/archive/2004/09/29/47896.html
- 当页面有缓存 路由传参无法更新试图
- NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic 或者reflect.InvocationTargetException
- Maya: Rendering with Arnold 5 Maya教程之Arnold5渲染 Lynda课程中文字幕