应用Java模仿客户端实际CoAP
筹备工作
- IDEA开发工具【IntelliJ IDEA 2023.1.1 (Community Edition)】
- JDK11及以上
- MAVEN【个别IDEA曾经集成】(有最好,不须要手动下载jar引入,没有的话手动引入)
PS: 【Community Edition】教育版收费
PS:在页面最上面
CoAP外围包
- californium-core.jar : 包含CoAP外围局部
- element-connector.jar 包含实用于UDP和DTLS的java套接字形象层
scandium.jar: 包含DTLS
创立我的项目
- Language- Java。
- Build system- Maven。
- JDK- JDK_version_11.XX.XX。
成果如下:
单击“Create”;创立胜利如下:
筹备代码
pom.xml代码中退出依赖包
代码块,放在之下
<dependencies> <dependency> <groupId>org.eclipse.californium</groupId> <artifactId>californium-core</artifactId> <version>2.0.0-M7</version> </dependency> <dependency> <groupId>org.eclipse.californium</groupId> <artifactId>element-connector</artifactId> <version>2.0.0-M7</version> </dependency> <dependency> <groupId>org.eclipse.californium</groupId> <artifactId>scandium</artifactId> <version>2.0.0-M7</version> </dependency></dependencies>
成果如下:
依赖包配置文件退出之后;执行一下install下载依赖包;成果如下:
Main.java中;替换所以代码
package org.example;import org.eclipse.californium.core.CoapClient;import org.eclipse.californium.core.CoapResponse;import org.eclipse.californium.core.Utils;import org.eclipse.californium.core.coap.MediaTypeRegistry;import java.net.URI;import java.net.URISyntaxException;public class Main { public static void main(String[] args) throws URISyntaxException, InterruptedException { //拜访令牌-与平台端保持一致 String ACCESS_TOKEN = "Za3E3cfKZmXV5eBOzCRW"; //服务器IP地址,填上你的IP String ip = "101.133.***.**"; //遥测数据上传接口,留神默认端口为5683 String url = "coap://" + ip + ":5683/api/v1/" + ACCESS_TOKEN + "/telemetry"; //创立一个资源申请 URI uri = new URI(url); CoapClient client = new CoapClient(uri); //POST申请 CoapResponse response; //反对数据格式是{"key1":"value1", "key2":"value2"} String payload = "{\"temp\":\"21.5\", \"wet\":\"37.5\"}"; while (true) { //每隔5秒循环发送 Thread.currentThread().sleep(5000); //只反对POST申请,切为【JSON格局】 response = client.post(payload, MediaTypeRegistry.APPLICATION_JSON); if (response != null) { //打印申请状态码 System.out.println(response.getCode()); //选项参数 System.out.println(response.getOptions()); //获取响应内容文本信息 System.out.println(response.getResponseText()); System.out.println("\nAdvanced\n"); //打印格局良好的输入 System.out.println(Utils.prettyPrint(response)); } } }}
文章起源(首发地址):ThingsKit物联网平台