今天来个需求,需要把八爪鱼任务发布到云平台执行。同时我们可以查看任务的状态。下面是我写的关于调取的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调取相关推荐

  1. 我也没想到,Java开发 API接口可以不用写 Controller了

    大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得 缘起 先说一下我为什么会使用这个工具? 最近新启动一个项目,业务并不算复杂,那种典型的管理 ...

  2. Java的API及Object类、String类、字符串缓存区

    Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Object:Object类是Java语言中的根类,即所有类的父类. equ ...

  3. Java Persistence API中的FetchType LAZY和EAGER之间的区别?

    我是Java Persistence API和Hibernate的新手. Java Persistence API中的FetchType.LAZY和FetchType.EAGER什么区别? #1楼 我 ...

  4. Java 常用API的运用,效率及技巧

    1.     Java面向对象基本概念 2.     System 3.     String, StringBuffer 4.     数值,字符,布尔对象与简单类型的操作 5.     Class ...

  5. mq 接口 java_Rabbitmq Java Client Api详解

    AMQP AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现. 基础概念快速入门 每个rabbitmq-server叫做一个Broker,等着tcp连接进入. 在rabbi ...

  6. 关于 Java Collections API 您不知道的 5 件事--转

    第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things2.html 对于很多 Java 开发人员来说,Java Collections A ...

  7. JAVA EXCEL API详解

    2019独角兽企业重金招聘Python工程师标准>>> 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易 ...

  8. es dsl java api_求帮助将dsl翻译为java的API

    前面的query都会写java的api,但是后面的aggs的嵌套就不知道怎么写了.es版本为5.3.3 GET /realty_assistant/phoneinoutcallrecord/_sear ...

  9. Java Stream API性能测试

    Java Stream API性能测试 已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟. 为保证测试 ...

最新文章

  1. python拟合求参_机器学习作业(四)神经网络参数的拟合——Python(numpy)实现
  2. 卷积神经网络理解及1*1卷积核的作用
  3. 英雄联盟手游超燃测试服务器维护,《英雄联盟手游》超燃测试放号开启,轻松教你获得测试资格...
  4. 点云网络的论文理解(二)- PointNet的pytorch复现
  5. 关于Spring的构造函数,init-method,和依赖注入的先后顺序
  6. 2022-02-03--银河麒麟-银河麒麟v4与.netcore安装
  7. 【C++11新特性】 C++11智能指针之unique_ptr
  8. 正则基础之——反向引用
  9. 学计算机就业靠谱吗,2018年计算机专业就业怎么样?
  10. 解决MSChart底部横坐标显示不全的问题
  11. (05)System Verilog 数组类型详解
  12. js获取今天剩余时间_js动画,setTimeout/setInterval的不准确
  13. 最大乘积java_在Java中查找负数的最大乘积
  14. 2017腾讯校招面试回忆 成功拿到offer
  15. 终极事务处理(XTP,Hekaton)——万能大招?
  16. initramfs详解----设备文件系统
  17. http://www.cnblogs.com/wayfarer/archive/2004/09/29/47896.html
  18. 当页面有缓存 路由传参无法更新试图
  19. NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic 或者reflect.InvocationTargetException
  20. Maya: Rendering with Arnold 5 Maya教程之Arnold5渲染 Lynda课程中文字幕

热门文章

  1. 对象在Eden区分配
  2. SSD算法原理介绍,包含算法结构、Loss计算、默认框计算几个方面
  3. 谈招聘:一个对的人,是对整个团队的救赎
  4. 李宏毅《深度学习》:深度学习入门实例
  5. STM32开发——点亮LED
  6. 如何使用 NFT 塑造品牌忠诚度?
  7. 分布式文件系统MooseFS的部署安装
  8. 复数计算和向量计算的区别
  9. 计算机mos专家级好考吗,MOS大师级都考什么?
  10. Tongue shape classification by geometric features总结