LuCI的RPC接口使用方法详解

LuCI的RPC接口使用方法详解

说明:这篇文章的部分内容来自于LuCI Wiki:http://luci.subsignal.org/trac/wiki/Documentation/JsonRpcHowTo,本文只是添加了一些示例和说明。
        LuCI是一个基于Lua语言开发的Web framework,提供UCI(统一配置接口)的web接口。LuCI也提供了一种基于JSON语法的RPC机制来访问其内部的库。当前LuCI提供了5个库的接口,分别是:auth、uci、fs、sys、ipkg。下面简单介绍一下使用方法,以及如何通过官方文档来构造json请求数据

AUTH库

        认证过程是所有其他操作的前提,因为其他操作都需要auth认证成功后产生的token,否则会返回403错误。我们来看一下auth过程是怎么样的。下文所有RPC的操作都是使用curl工具。

$ curl -i -X POST -d '{"method":"login","params":["root","1"]}' http://192.168.1.10:8080/luci/rpc/auth
HTTP/1.1 200 OK
Server: LuCId-HTTPd/1.0
Expires: 0
Content-Type: application/json
Cache-Control: no-cache
Date: Mon, 17 Mar 2014 17:27:30 GMT
Set-Cookie: sysauth=72fe65ae2dd4c8e77623576faba4ac4c; path=/
Connection: close

{"id":null,"result":"72fe65ae2dd4c8e77623576faba4ac4c","error":null}

简单说明一下,上面的命令是使用curl工具通过POST方式发送了一个http请求,请求的内容是一个登陆请求

{"method":"login","params":["root","1"]}

http返回的内容是json格式的字符串,其中result的值就是上面提到了token。OK,现在我们拿到了下面其他操作需要的关键字段TOKEN


另外,需要注意的是,LuCI在openwrt里的网址是:http://192.168.1.10/cgi-bin/luci/rpc/xxx,多了一个cgi-bin。这是因为openwrt默认使用uhttpd作为web server。而在PC里使用make runhttpd启动的是lua web server。

SYS库

        sys库提供了一下系统通用功能,比如说:执行一条命令,查看系统信息,重启等。具体功能请猛戳这个链接:http://luci.subsignal.org/api/luci/modules/luci.sys.html

这里找一个最简单来演示一下如何使用官方文档构造json数据,查看uptime时间。首先,我们看一下sys.uptime的官网说明:

uptime ()
    Returns the current system uptime stats.
    Return value:
    String containing total uptime in seconds 
uptime函数返回一个设备从上电到现在的总时间(秒)。那么,看一下使用HTTP请求来调这个函数的方法,还是curl模拟:

curl -i -X POST -d '{"method":"uptime"}' http://192.168.1.10:8080/luci/rpc/sys?auth=72fe65ae2dd4c8e77623576faba4ac4c
HTTP/1.1 200 OK
Server: LuCId-HTTPd/1.0
Expires: 0
Content-Type: application/json
Cache-Control: no-cache
Date: Mon, 17 Mar 2014 17:49:42 GMT
Set-Cookie: sysauth=72fe65ae2dd4c8e77623576fab
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值