当前位置: 首页 > news >正文

java对接物联网设备(一)——使用okhttp网络工具框架对接标准API接口

当前无论是在互联网领域,还是物联网项目下,亦或者各类应用类软件,基于http标准接口的对接是目前市面上最常见也是最简单的数据交互方式之一,甚至可以说是最流行的,因为它不依赖的各种插件或者服务。

开发者或者提供服务商对对此乐此不疲,当然json数据格式的普及也是功不可没。这篇文章将教会你如何简单快速使用java对接一个第三方的接口。

一.springboot项目引入okhttp3的pom信息

官网信息如下:OkHttp3官网地址

        <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.0</version></dependency>

二.使用okhttp发送post请求

以下代码可以直接参照使用,按照自己实际业务进行相应调整即可。相关json数据的转换均使用com.alibaba.fastjson的类

public String testOkhttpSendPostData(){/*** 初始化OkHttpClient* 可以指定连接超时时间,读写时间等,避免因网络问题无法正常请求响应*/OkHttpClient client = new OkHttpClient().newBuilder().connectTimeout(10, TimeUnit.SECONDS).writeTimeout(10,TimeUnit.SECONDS).readTimeout(10,TimeUnit.SECONDS).build();MediaType mediaType = MediaType.parse("application/json; charset=utf-8");//设置json格式的body参数JSONObject reqObj = new JSONObject();reqObj.put("pid","202101150001");reqObj.put("name","okhttp");reqObj.put("phone","010");reqObj.put("source","test");RequestBody requestBody = RequestBody.create(mediaType, JSONObject.toJSONString(reqObj));//请求信息头一般根据接口文档要求自定义设置,以map形式表现Map<String, String> reqHeadersObj = new HashMap<>();reqHeadersObj.put("appId","接入方信息");reqHeadersObj.put("ver","接口版本");reqHeadersObj.put("sign","用户签名");//发送请求并从响应中获取结果Headers headers = Headers.of(reqHeadersObj);Request request = new Request.Builder().url(externalDockUrl+"/base/testUrl").headers(headers).method("POST", requestBody).build();String respStr = "";try{//同步执行Response response = client.newCall(request).execute();if(response.body()!=null){respStr = response.body().string();}}catch (Exception e){e.printStackTrace();log.error("测试okhttp发送post请求异常->testOkhttpSendPostData():{}", e.getMessage());return "测试okhttp发送post请求异常";}//解析并返回最终查询结果if(StringUtils.isNotBlank(respStr)) {JSONObject respObject = JSONObject.parseObject(respStr);//判断是否是成功响应的数据if (!"0".equals(respObject.getString("code"))) {return "测试okhttp发送post请求信息未正常返回";}//此处可以按照自己实际的业务处理得到的响应数据log.info("测试okhttp发送post请求信息成功->getJSVehAllDeviceData(),数据详情={}",respObject.getJSONObject("data").toJSONString());}return "success";}

三.使用okhttp发送get请求

利用okhttp发送get请求关键代码展示如下

    //创建OkHttpClient实例对象OkHttpClient okHttpClient = new OkHttpClient();//请求信息头一般根据接口文档要求自定义设置,以map形式表现Map<String, String> reqHeadersObj = new HashMap<>();reqHeadersObj.put("appId","接入方信息");reqHeadersObj.put("ver","接口版本");reqHeadersObj.put("sign","用户签名");Headers headers = Headers.of(reqHeadersObj);//创建Request对象Request request = new Request.Builder().url(externalDockUrl+"/base/testGetUrl?id=010101").headers(headers).get().build();


文章转载自:

http://ajNQBfvJ.bLsfz.cn
http://tfS85aCk.bLsfz.cn
http://Go0lTbPU.bLsfz.cn
http://zffyx2z9.bLsfz.cn
http://JU3Wk4oS.bLsfz.cn
http://i8xLAvhO.bLsfz.cn
http://32JkYvW5.bLsfz.cn
http://74wkVQjX.bLsfz.cn
http://NyqFiEHw.bLsfz.cn
http://zPsEHKpm.bLsfz.cn
http://3NlPj5P2.bLsfz.cn
http://e94jPONC.bLsfz.cn
http://vb4AH594.bLsfz.cn
http://luPNsgno.bLsfz.cn
http://aAtf1K6j.bLsfz.cn
http://XQLfIVPO.bLsfz.cn
http://N2rKbLoa.bLsfz.cn
http://rHI1RGQE.bLsfz.cn
http://OCMDZrgM.bLsfz.cn
http://hH1rW4OG.bLsfz.cn
http://6te49oe9.bLsfz.cn
http://NFFDgCIU.bLsfz.cn
http://dPfXBXl2.bLsfz.cn
http://pJuY6N44.bLsfz.cn
http://NoDKSjM0.bLsfz.cn
http://amGJzUnQ.bLsfz.cn
http://MFNAofgG.bLsfz.cn
http://fAdllgM3.bLsfz.cn
http://hfc0epb4.bLsfz.cn
http://n3WQODSp.bLsfz.cn
http://www.dtcms.com/a/366447.html

相关文章:

  • 一文吃透 C#中异步编程Task
  • 华为的 4A 架构简介
  • 开源免费工具,使用 Copicseal 批量添加照片参数水印教程
  • 大疆 Osmo 360:双 1 英寸 + 8K/50fps,改写全景相机市场格局
  • JUnit 详解
  • 【车载开发系列】UART,IIC与SPI通信方式的区别
  • 数据旁路(Data Bypassing)是什么?
  • LangChain4j的初步学习【逐步添加中】
  • 聚焦功能与评价:2025 年十大低代码平台全面深度对比与选型指南
  • 百度前端社招面经
  • 【算法--链表】61.旋转链表--通俗讲解
  • [特殊字符]为什么不建议全局安装 Claude Code?官方推荐的最佳实践与代理配置指南
  • 盲盒抽卡机小程序系统开发:以技术创新驱动娱乐体验升级
  • 《用于触觉伺服操作的高动态触觉传感:让机器人摆动锤子》论文解读
  • 少儿舞蹈小程序(7)打造您的“活”名片:动态展示机构实力
  • java注解、Lambda表达式、Servlet
  • 链表(2)之双向链表
  • 笔记2 FreeRTOS任务
  • MongoDB Change Streams:实时监听数据变化的实战场景
  • 【Linux我做主】细说进程等待
  • 基于脚手架微服务的视频点播系统-界面布局部分(二):用户界面及系统管理界面布局
  • 基于机器学习的缓存准入策略研究
  • Jmeter基础教程详解
  • Prometheus、Alertmanager、Pushgateway、node_export处理pprof漏洞
  • 鸿蒙:状态管理V2(V2装饰器的学习)
  • 分析流程自动优化!Fabarta个人专属智能体「数据分析」新功能介绍
  • 0基础怎么学习数据分析、统计分析、机器学习?数学不好、一看编程就头疼,能行吗?
  • (Python)数据分析:概念和流程
  • 【高并发内存池】四、中心缓存的设计
  • 加密货币武器化:恶意npm包利用以太坊智能合约实现隐蔽通信