构造请求

更新时间:

构造请求

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

请求URI由如下部分组成。

{URI-scheme} :// {Endpoint} /? {query-string}

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

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

https://si-d6e8d812acb848958054.tuyacloud.com:8686/?Action=QueryDevice&SignatureNonce=8d6131cab4e6465d975ba65ba4d45aad&AccessKeyId=xMr9wgwXQLhv****65o03mcD&SignatureMethod=HMAC-SHA1&Timestamp=2024-11-17T09:41:41Z&ProductKey=dwwAsxAkOwT7xhIY&Signature=Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D

说明

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

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

curl https://si-d6e8d812acb848958054.tuyacloud.com:8686/?Action=QueryDevice&SignatureNonce=8d6131cab4e6465d975ba65ba4d45aad&AccessKeyId=xMr9wgwXQLhv****65o03mcD&SignatureMethod=HMAC-SHA1&Timestamp=2024-11-17T09:41:41Z&ProductKey=dwwAsxAkOwT7xhIY&Signature=Gg4HDRr8kYn2R0mYDI5hwOvrJDI%3D

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

1.如何获取Endpoint

进入您的控制台。在菜单「开发配置」>>「云端 API」中获取

详细获取方法,参见获取Endpoint

2.如何构造query-string

根据http规范,query-string一般由一系列的键值对组成,键和值之间用=连接,多个键值对之间用&连接。例如,?name=John&age=30,其中nameage是键,John30是对应的键值。键和值都应该遵循 URL 编码规则,以确保特殊字符的正确传输。

键值对可以分为公共参数接口参数

公共参数接口参数不区分先后地拼接成完整的query-string

2.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

唯一随机数。用于防止网络重放攻击。用户在不同请求中要使用不同的随机数值。

2.2.接口参数

参见API列表

查询您想要调用的API列表

3.代码示例

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