|
百宝云Post更新为新的直连请求方式
当我们和各个大型网站做回调的时候,其他网站是不会给百宝云传递访问token的,所以访问token需要直接在请求地址中包含。
比如这样:
http://post.91shenfan.com/api/0a953068ff01781ce22c0822c075018c 后面的:0a953068ff01781ce22c0822c075018c为云应用token。那么这个数据与链接是哪里来的?现在我们就一起来看看吧!
① 首先打开百宝云虚拟桌面:http://user.91shenfan.com/
② 点击百宝云管理,如图:
③ 点击云应用,在展开的节点里,点击访问token管理,如图:
④ 在云应用访问token管理界面,我们可以看到自己所有的云应用token,现在我们来点击token栏里的访问链接按钮,如下图:
下面的Post接口访问链接,就是我们上文写的Post直连链接。这下,大家应该知道这个直连链接是哪里来的了吧!如果还是不知道的话,那就只能要求你再看看前面的步骤了。
好了,直连链接的来源说明白了之后,我们就来看看它对应的百宝云事件了。新的Post直连与老模式的Post请求,所对应的百宝云事件都是:_post(token,arg,ip)。
代码如下:
- function _post(token,arg,ip)
- sendtextmsg("来自客户端的POST请求,请求数据为:"&arg)
- return "来自客户端的POST请求,请求数据为:"&arg
- end
复制代码
百宝云的post接口更新,主要解决了这个问题,这里说明下几种情况:
post传入多个参数内容,那么arg是数组传入。
如传入数据为: name=bby&pwd=123&sex=女,那么arg传入的数据就是数组了。可以直接使用数组方式读取里面的内容,如:var name = arg[“name”],var pwd = arg[“pwd”], var sex = arg[“sex”]。
post传入一个json格式的字符串,那么arg是数组传入。
如传入数据为: {“name”:”bby”,”pwd”:”123”,”sex”:”女”},那么arg传入的数据就是数组了。可以直接使用数组方式读取里面的内容,如:var name = arg[“name”],var pwd = arg[“pwd”], var sex = arg[“sex”]。
post传入一个xml格式的字符串,那么arg是数组传入。
如传入数据为: <?xml version="1.0" encoding="UTF-8" ?>
<name>bby</name><pwd>123</pwd><sex>女</sex>,那么arg传入的数据就是数组了。可以直接使用数组方式读取里面的内容,如:var name = arg[“name”],var pwd = arg[“pwd”], var sex = arg[“sex”]。
post传入一个不规则的字符串,那么arg是一个字符串传入。
如传入数据为: name=bby||pwd=123||sex=女,那么arg传入的数据就是原数据了。需要自己在代码里分割处理了。
一句话:老的post地址:http://post.91shenfan.com/cloudapi/cloudappapi 规则不变,只有新的post直连规则改变了。
TC代码如下:
- // post老方式与百宝云应用通信
- 功能 runBbyFunctionPost1(arg)
- 变量 token = "194d20a83e9533105f17335b3ebf8490"
- 变量 params = "token=" & token & "&funparams=" & arg
- 变量 url = "http://post.91shenfan.com/cloudapi/cloudappapi"
- 变量 ret = http提交请求("post", url, params, "utf-8")
- 返回 ret
- 结束
-
- // post直连方式与百宝云应用通信
- 功能 runBbyFunctionPost2(arg)
- 变量 params = arg
- 变量 url = "http://post.91shenfan.com/api/194d20a83e9533105f17335b3ebf8490"
- 变量 ret = http提交请求("post", url, params, "utf-8")
- 返回 ret
- 结束
-
- 功能 按钮_测试POST_点击()
- //这里添加你要执行的代码
- 变量 command = "{"0":"aa","1":"bbb"}"
- 调试输出("post老链接方式返回值:" & runBbyFunctionPost1(command))
- 调试输出("post新链接方式返回值:" & runBbyFunctionPost2(command))
- 结束
复制代码
百宝云代码:
- function _post(token,arg,ip)
- filelog("来自客户端的POST请求,请求数据为:"&arg)
- return "来自客户端的POST请求,请求数据为:"&arg
- end
复制代码
运行后的结果如下:
百宝云后面的日志效果如下:
TC的输出结果如下:
从日志与输出结果来看,我们就看出区别了。
老的模式post提交json字符串,百宝云_post事件接收到的arg参数也是json字符串。
新的模式post提交json字符串,百宝云_post事件接收到的arg参数则是数组了。这个新的改动,我们一定要记住,以及在写代码时引起注意。
以后推荐使用新的模式,老的模式也会继续支持,但是不推荐使用。
|
|