阅读220 返回首页    go iPhone_iPad_Mac_apple


发送消息给设备并得到设备响应__接口列表_服务器端API_阿里云物联网套件-阿里云

推送数据给设备并得到响应

特别注意:该接口目前只适用CCP协议接入的设备,MQTT协议不支持

描述

请求参数

名称 类型 是否必须 描述
<公共参数> 公共参数
ProductKey String 以哪个ProductKey来进行发送
DeviceName String 设备名称
RpcContent String 需要传递给设备的数据,数据需要为 二进制经过Base64转码得到的字符串数据
TimeOut Integer 表示等待设备回复消息的时间,单位是毫秒

返回参数

名称 类型 描述
RequestId String 表示调用返回码
Rpccode String 表示调用返回码(UNKNOW,SUCCESS,TIMEOUT,HALFCONN)
Success Boolean 表示调用成功与否
ResponseContent String 设备返回二进制数据的base64编码后的值
ErrorMessage String 出错信息
  1. UNKNOW:系统异常
  2. SUCCESS:成功
  3. TIMEOUT:设备回执超时
  4. OFFLINE: 设备离线
  5. HALFCONN: 设备离线(设备连接断开但是断开时间未超过一个心跳周期)

示例

  • 请求示例
  1. https://iot.aliyuncs.com/?&Action=RevertRpc
  2. &ProductKey=...
  3. &DeviceName=...
  4. &RpcContent=aGVsbG8gd29ybGQ%253D
  5. &TimeOut=5000
  6. &<[公共请求参数]>
  • SDK示例代码 [SDK下载]

    • java
      1. RevertRpcRequest rpcRequest = new RevertRpcRequest();
      2. rpcRequest.setDeviceName("...");//设备名称
      3. rpcRequest.setProductKey(...);//设备接入时候填写的productKey
      4. rpcRequest.setTimeOut(5000); //超时时间,单位毫秒.如果超过这个时间设备没反应则返回"TIMEOUT"
      5. rpcRequest.setRpcContent("aGVsbG8gd29ybGQ=");//推送给设备的数据.数据要求二进制数据做一次BASE64编码.(示例里面是"helloworld"编码后的值)
      6. RevertRpcResponse rpcResponse = client.getAcsResponse(rpcRequest);
      7. //得到设备返回的数据信息. 注意:得到的数据是设备返回二进制数据然后再经过IOT平台base64转换之后的字符串.需要转换一下才能拿到原始的二进制数据.
      8. System.out.println(rpcResponse.getResponseContent());
      9. System.out.println(rpcResponse.getRpccode());//对应的响应码( TIMEOUT/SUCCESS/OFFLINE/HALFCONN等)
    • php
      1. $request = new IotRevertRpcRequest();
      2. $request->setProductKey(60028255);
      3. $request->setDeviceName("11a936267d2a4b6eb7b4cb8549fc1fa7");//设备名称
      4. $request->setTimeOut(5000); //超时时间,单位毫秒.如果超过这个时间设备没反应则返回"TIMEOUT"
      5. $request->setRpcContent("aGVsbG8gd29ybGQ=");//推送给设备的数据.数据要求二进制数据做一次BASE64编码.(示例里面是"helloworld"编码后的值)
      6. $response = $client->getAcsResponse($request);
      7. print_r("rn");
      8. print_r($response);
    • python
      1. request = RevertRpcRequest.RevertRpcRequest()
      2. request.set_accept_format('json') // 设置返回数据格式,默认为XML
      3. request.set_ProductKey('...')
      4. request.set_DeviceName('xxxxxxx') // 设备名称
      5. request.set_RpcContent('aGVsbG8gd29ybGQ=') // 推送给设备的数据.数据要求二进制数据做一次BASE64编码.(示例里面是"helloworld"编码后的值)
      6. request.set_TimeOut(1000) // 超时时间,单位毫秒.如果超过这个时间设备没反应则返回"TIMEOUT"
      7. result = clt.do_action(request)
      8. print 'revert rpc : ' + result
  • 返回示例

    json示例

  1. {
  2. "Rpccode":"UNKONW",
  3. "Success":true,
  4. "ResponseContent":"bm90IGZvdW5kIHJvdXRlciByZWNvcmQu"
  5. }

XML示例

  1. <RevertRpcResponse>
  2. <Rpccode>UNKONW</Rpccode>
  3. <Success>true</Success>
  4. <ResponseContent>bm90IGZvdW5kIHJvdXRlciByZWNvcmQu</ResponseContent>
  5. </RevertRpcResponse>

最后更新:2016-12-06 17:29:13

  上一篇:go 发布消息到Topic__接口列表_服务器端API_阿里云物联网套件-阿里云
  下一篇:go 设备状态回调通知__服务器端API_阿里云物联网套件-阿里云