构造请求

更新时间:2025-09-17 08:19:17下载pdf

本节介绍如何构造API调用请求。构造好的请求,您可以使用curl或者postman等工具进行测试验证。

1. 请求构成

请求URI由如下部分组成。
{URI-scheme} : // {Endpoint} /? {query-string}

  • URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。
  • Endpoint:指定承载API服务端点的服务器域名(或IP)和端口,不同服务实例的Endpoint不同,您可以从控制台菜单「开发配置」>>「云端 API」中获取。
  • query-string:查询参数,分为公共参数和接口参数。公共参数是所有接口都需要传的参数,比如签名信息、时间戳等。接口参数是要调用的接口规定的参数比如接口名字(Action)等。

例如您需要在演示环境查询某个产品下的设备列表,需要使用演示环境的Endpoint,并查找对应的接口名字(QueryDevice)。拼起来如下:

https://endpoint/?Action=QueryDevice&SignatureNonce=8d6131cab4e6465d975ba65ba4d45aad&AccessKeyId=xMr9wgwXQLhv5AUa65o03mcD&SignatureMethod=HMAC-SHA1&Timestamp=2024-11-17T09:41:41Z&ProductKey=dwwAsxAkOwT7xhIY&Signature=Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D  

在阅读下文时,您可以结合对照上面的请求示例进行理解

您可以在终端使用curl命令进行测试验证。

curl https://endpoint/?Action=QueryDevice&SignatureNonce=8d6131cab4e6465d975ba65ba4d45aad&AccessKeyId=xMr9wgwXQLhv5AUa65o03mcD&SignatureMethod=HMAC-SHA1&Timestamp=2024-11-17T09:41:41Z&ProductKey=dwwAsxAkOwT7xhIY&Signature=Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D  

为构造API请求,您需要知道如何获取endpoint,以及如何拼接queryString

2.如何获取Endpoint

进入您的控制台。在菜单「开发配置」>>「云端 API」中获取
详细获取方法,参见 获取Endpoint

3.如何构造query-string

根据http规范,query-string一般由一系列的键值对组成,键和值之间用=连接,多个键值对之间用&连接。例如,?name=John&age=30,其中name和age是键,John和30是对应的键值。键和值都应该遵循 URL 编码规则,以确保特殊字符的正确传输。
键值对可以分为公共参数和接口参数
公共参数和接口参数不区分先后地拼接成完整的query-string

3.1.公共参数

顾名思义,公共参数跟接口无关,即每个API都需要使用的参数

名称 类型 是否必选 示例 描述
AccessKeyId String xMr9wgwXQLhv5AUa65o03mcD 平台颁发给开发者的,用于调用接口的密钥ID,在控制台获取accessKey
Signature String Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D 签名结果。平台用于验证请求身份的安全机制。详细计算方法,请参见计算签名
SignatureMethod String HMAC-SHA1 目前仅支持****HMAC-SHA1。不填默认HMAC-SHA1
Timestamp String 2024-11-17T09:41:41Z 请求的时间戳。日期格式按照ISO8601标准表示,并需要使用UTC时间。格式为YYYY-MM-ddTHH:mm:ssZ

例如,2024-11-17T09:41:41Z

平台会校验时间误差超过20分钟为不合法调用
SignatureNonce String 8d6131cab4e6465d975ba65ba4d45aad 唯一随机数。用于防止网络重放攻击。用户在不同请求中要使用不同的随机数值。

3.2.接口参数

参见API列表
查询您想要调用的API的参数

4.代码示例

java代码示例,帮助您理解如何构造API请求