X-Router 开发接口说明

SDK开发接口


SDK开发包主要能够使外部程序获取X-Router的各项数据、控制X-Router的各种数据等。


 SDK的调用

1.使X-Router支持SDK开发。
将安装目录\SDK目录下的sdk.ini文件拷贝到上级目录(即X-Router安装目录),按照提示内容进行修改,修改之后单独重启X-Router SDK Service服务即可。

2.X-Router使用WebService来支持SDK的使用。

3.在sdk.ini文件中需要为调用SDK的客户端指定通讯Key。如果需要限制客户端只能在固定IP上调用,填写IP,否则为0.0.0.0。

4.调用任何命令之前,请首先向X-Router SDK的WEB服务端口POST一个获取本机IP请求:
http://X-Router SDK IP:828/getmyip
POST内容:{"Command":"getmyip"}
请求后,会返回JSON数据:{"IP":"x.x.x.x"}

5.获取本机IP后,后续的所有通讯都需要使用key=MD5(sdk.ini中约定的Key+本机IP)来作为数据的一部分,以便X-Router来验证数据的合法性。

6.任何命令的调用都是向该URL POST数据:
http://X-Router SDK IP:828/sdkservice

7.调用的JSON数据区分大小写(严格按照手册中的大小写调用)。

8.若出错,会返回如下数据:
{
  "Key" : "xxxxxxxxx",
  "Data" : {
    "Command" : "ERROR",
    "Info" : "xxxxxxx" // 出错信息
  }
}

9.向SDK接口POST数据时,必须要使用“Form=JSON数据”方式。如果使用网页方式提交,可以使用名称为Form的Input来提交数据。例如:
  Form={"Key":xxxxxxxx, "Data":{"Command":"getALLACCOUNT"}}

10. 为了说明数据字段的意义增加了注释,在实际使用时JSON数据不允许有注释。

这里打开网页的机器IP为10.0.0.2,X-Router机器IP为10.0.0.1

<html>
<head>
</head>
<body style="margin:0;padding:0; height:100%" scroll=no>
<script type="text/javascript" src="md5.js"></script>
<script language="javascript">
function ok()
{
    hash = hex_md5("12345678"+"10.0.0.2");
    document.all.Form.value = '{"Key":'+hash.toUpperCase()+', "Data":'+document.all.jsonstr.value+'}';
    document.all.dataform.submit();
}
</script>
<form method="POST" action="http://10.0.0.1:828/sdkservice" name="dataform">
<input value="" type="hidden" name="Form" size="9">
<p><textarea rows="15" name="jsonstr" cols="109"></textarea></p>
<p><input type="button" value="发送命令" name="B1" onclick="ok()"></p>
</form>
</body>
</html>