//组装参数Map<String, String> loginToCameraTokenMap = new HashMap<>();loginToCameraTokenMap.put("appKey", hkCameraTokenInfoSelectDTO.getAppKey());loginToCameraTokenMap.put("appSecret", hkCameraTokenInfoSelectDTO.getSecret());HkCameraTokenDTO hkCameraTokenDTO =  HttpDongQingUtil.doPostForm("https://open.ys7.com/api/lapp/token/get", loginToCameraTokenMap);
import com.alibaba.fastjson.JSON;
import com.dongqing.storage.core.dto.business.hk.HkCameraTokenDTO;import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;/*** @author lrx* @description: TODO  HTTP客户端工具类,支持get,post* @date 2021/3/9 13:50*/
public class HttpDongQingUtil {/*** 向指定URL发送GET方法的请求** @param httpurl 请求参数用?拼接在url后边,请求参数应该是 name1=value1&name2=value2 的形式。* @return result 所代表远程资源的响应结果*/public static String doGet(String httpurl) {HttpURLConnection connection = null;InputStream is = null;BufferedReader br = null;String result = null;// 返回结果字符串try {// 创建远程url连接对象URL url = new URL(httpurl);// 通过远程url连接对象打开一个连接,强转成httpURLConnection类connection = (HttpURLConnection) url.openConnection();// 设置连接方式:getconnection.setRequestMethod("GET");// 设置连接主机服务器的超时时间:15000毫秒connection.setConnectTimeout(15000);// 设置读取远程返回的数据时间:60000毫秒connection.setReadTimeout(60000);// 发送请求connection.connect();// 通过connection连接,获取输入流if (connection.getResponseCode() == 200) {is = connection.getInputStream();// 封装输入流is,并指定字符集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 != is) {try {is.close();} catch (IOException e) {e.printStackTrace();}}connection.disconnect();// 关闭远程连接}return result;}/*** 向指定 URL 发送POST方法的请求** @param httpUrl 发送请求的 URL* @param param   请求参数应该是{"key":"==g43sEvsUcbcunFv3mHkIzlHO4iiUIT R7WwXuSVKTK0yugJnZSlr6qNbxsL8OqCUAFyCDCoRKQ882m6cTTi0q9uCJsq JJvxS+8mZVRP/7lWfEVt8/N9mKplUA68SWJEPSXyz4MDeFam766KEyvqZ99d"}的形式。* @return 所代表远程资源的响应结果*/public static List<String> doPost(String httpUrl, String param) {HttpURLConnection connection = null;InputStream is = null;OutputStream os = null;BufferedReader br = null;List<String> list = new ArrayList<>();try {URL url = new URL(httpUrl);// 通过远程url连接对象打开连接connection = (HttpURLConnection) url.openConnection();// 设置连接请求方式connection.setRequestMethod("POST");// 设置连接主机服务器超时时间:15000毫秒connection.setConnectTimeout(15000);// 设置读取主机服务器返回数据超时时间:60000毫秒connection.setReadTimeout(60000);// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为trueconnection.setDoOutput(true);// 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无connection.setDoInput(true);// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。connection.setRequestProperty("Content-Type", "application/json");// 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0//connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");// 通过连接对象获取一个输出流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) {list.add(temp);}}} 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 list;}/*** @param httpUrl 请求的url* @param param   form表单的参数(key,value形式)* @return*/public static HkCameraTokenDTO doPostForm(String httpUrl, Map param) {HttpURLConnection connection = null;InputStream is = null;OutputStream os = null;BufferedReader br = null;//创建登录地址,验证信息对象HkCameraTokenDTO hkCameraTokenDTO = new HkCameraTokenDTO();try {URL url = new URL(httpUrl);// 通过远程url连接对象打开连接connection = (HttpURLConnection) url.openConnection();// 设置连接请求方式connection.setRequestMethod("POST");// 设置连接主机服务器超时时间:15000毫秒connection.setConnectTimeout(15000);// 设置读取主机服务器返回数据超时时间:60000毫秒connection.setReadTimeout(60000);// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为trueconnection.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 da3efcbf-0845-4fe3-8aba-ee040be542c0");// 通过连接对象获取一个输出流os = connection.getOutputStream();// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的(form表单形式的参数实质也是key,value值的拼接,类似于get请求参数的拼接)os.write(createLinkString(param).getBytes());// 通过连接对象获取一个输入流,向远程读取if (connection.getResponseCode() == 200) {is = connection.getInputStream();// 对输入流对象进行包装:charset根据工作项目组的要求来设置br = new BufferedReader(new InputStreamReader(is, "UTF-8"));StringBuffer sbf = new StringBuffer();String temp = br.readLine();hkCameraTokenDTO = JSON.parseObject(temp,HkCameraTokenDTO.class);}} 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 hkCameraTokenDTO;}/*** 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串** @param params 需要排序并参与字符拼接的参数组* @return 拼接后字符串*/public static String createLinkString(Map<String, String> params) {//所有的键转化成listList<String> keys = new ArrayList<String>(params.keySet());Collections.sort(keys);//返回的拼接StringBuilder prestr = new StringBuilder();//遍历键for (int i = 0; i < keys.size(); i++) {//获取键String key = keys.get(i);//获取值String value = params.get(key);if (i == keys.size() - 1) {// 拼接时,不包括最后一个&字符prestr.append(key).append("=").append(value);} else {prestr.append(key).append("=").append(value).append("&");}}//返回return prestr.toString();}
}

海康威视产品的token更新相关推荐

  1. 云函数查询_速览 | 京东云5月重要产品与功能更新

    新增产品 高可用组 正式发布 产品概述: 高可用组是京东云提供的云主机逻辑集合,高可用组内的云主机分散部署在相互隔离的物理资源上,当出现硬件故障或定时维护时只会影响部分云主机,客户业务仍为可用状态,本 ...

  2. 产品| 产品白皮书(待更新)

    大纲 一.技术白皮书介绍 Why:为什么要写技术白皮书? What:技术白皮书是什么? When:什么时候用需要用到技术白皮书? Where:什么地方可以用技术白皮书? Other 二.如何写产品白皮 ...

  3. 速览|京东云11月产品与功能更新

    新增产品 安全通告服务  正式发布 产品概述:实时监测风险隐患,提供最新的安全漏洞资讯和威胁情报,帮助客户及时发现系统中潜在的安全风险,提高企业的安全风险管控能力. 代码审计服务  正式发布 产品概述 ...

  4. 保险产品即Token,众安科技的新区块链项目背后有何门道?

    人们常用"大潮退去后,才知谁在裸泳"形容热潮褪去后的的惨淡景象,如今这幅景象也在区块链行业发生着.随着虚拟货币泡沫的破裂.投机者相继离去,真正的实践者正渐渐浮出水面. 不同于商业机 ...

  5. 速览|京东云 1-2月产品与功能更新

    新增产品 Kubernetes 集群 正式发布 产品概述:Kubernetes集群服务采用管理节点全托管的方式,为用户提供简单易用.高可靠.功能强大的容器管理服务.该产品完全兼容标准Kubernete ...

  6. 安装Solidworks出现报错:可执行文件VCRedist10\vcredist_x64.exe未成功安装/ 找不到vc_red.msi文件路径/ Windows不允许更新经过管理的播发产品

    我在安装solidworks时出现了如标题所示的各种报错,在网上到处找解决办法,捣鼓了三个小时终于弄好了,由于网上的方法都各自只能解决我一部分的问题,所以我把它们整合了一下,分享给大家(*^▽^*) ...

  7. 拼多多更新token

    token是有有效期的,快要到期的时候可以调用刷新token的接口让token更新一下,然后继续使用

  8. 8月24日,数据分析、区块链、产品管理、市场、运营、财务、媒体等一大波热门岗位来袭丨今夏硅谷最热门的招聘会进入倒计时...

    你也许觉得时间还很多 你也许觉得找工作并没有那么难 你也许正收拾行囊准备享受暑期的旅行 可你却不知道 你正在与一大波机会擦肩而过 没有复杂的简历筛选 也没有令人紧张的电话面试 瀚海.北美省钱快报.华兴 ...

  9. 由于严重缺陷,海康威视摄像机可能被远程黑客攻击

    一个被跟踪为 CVE-2021-36260 的关键问题影响了 70 多个海康威视设备模型,并且可能允许攻击者接管它们. 一个跟踪为 CVE-2021-36260 的严重漏洞影响了 70 多个海康威视摄 ...

最新文章

  1. Python Socket编程基础篇
  2. 对话农民丰收节交易会-农业大健康·弘本农业:功能农业扶贫
  3. hadoop-2.5.1 源码编译
  4. 云原生 云计算_使云原生计算具有普遍性和可持续性
  5. 【Elasticsearch】es 重启 已经 重启会导致什么问题
  6. python计算出nan_学习笔记0522:Tensorflow训练模型出现loss是nan的问题排查
  7. 小写的tensor接受数据,大写的Tensor()接受的是shape,数据的维度
  8. Python ICMP扫描
  9. 寻星时卫星数字电视接收机的信号检测功能
  10. 外盘琪貨正大国际:别放弃勤奋,再难,别丢掉善良
  11. python实现压缩,解压文件,使用密码解压文件。
  12. java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示
  13. 通过PMP认证后,项目经理薪资待遇如何?
  14. Racket编程指南——13 类和对象
  15. Chatbot(五)
  16. 一份游戏策划书的范例[转载]
  17. Java语言,什么是Java语言?Java的版本。
  18. 如何在小米9 se(安卓9)安装Xposed框架?
  19. 单总线是什么以及特点、协议 、使用方法
  20. 孔乙己——纪念当今的穷酸大学生们

热门文章

  1. Wireshark-----抓包分析
  2. 博弈论学习(二)——完全信息静态博弈
  3. Python干旱指数库climate_indices学习
  4. 用HTML制作代码雨源码分享
  5. 数据结构9 - 常用的10种算法
  6. Android开发工具类
  7. 【无标题】如何在C#中使用Dapper ORM学习通http://www.bdgxy.com/
  8. python爬取discuz_爬虫技术实践(二)Discuz! 按板块爬取帖子内容实战
  9. Mac 鼠标卡顿现象
  10. 利用python从网络上爬取图片_一篇文章教会你利用Python网络爬虫抓取王者荣耀图片...