使用背景
使用单片机连接云平台通过java代码控制指令上传下发。
oneNet云平台接口文档地址:OneNET - 中国移动物联网开放平台
以以下两个api为例:(其余使用方式相似)
鉴权
使用平台api之前首先需要鉴权(实际上就是请求要携带token)
鉴权工具类如下:(token的生成)
package com.xiaowu.util;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* @Author xiaowu
* @Date 2024/01/28 19:35
* @Description
*/
public class OneNetUtils {
public static String assembleToken(String version, String resourceName, String expirationTime, String signatureMethod, String accessKey)
throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
StringBuilder sb = new StringBuilder();
String res = URLEncoder.encode(resourceName, "UTF-8");
String sig = URLEncoder.encode(generatorSignature(version, resourceName, expirationTime, accessKey, signatureMethod), "UTF-8");
sb.append("version=")
.append(version)
.append("&res=")
.append(res)
.append("&et=")
.append(expirationTime)
.append("&method=")
.append(signatureMethod)
.append("&sign=")
.append(sig);
return sb.toString();
}
public static String generatorSignature(String version, String resourceName, String expirationTime, String accessKey, String signatureMethod)
thro