pb与互联网接口的交互

sbks 2016-05-21 10:25:17
互联网时代,以目前的主流技术,个人觉得涉及到以下三方面

一、数据生成json
这个对pb没太多难度,按json格式规格,对datastore里的数据来个循环写字符串就OK了,花不了多少时间
二、json生成记录行
这个要讲点技巧,datastore是有一个很重要的功能:依照xml格式导入数据,使用的是importstring()函数,那么,只要想办法把json生成xml文件字符串,就很快可以实现了。处理这个问题的关键是在于解析json,并拼成xml格式。这个只要理解一下xml规范与json规范,耐心一点进行字符串分析,写循环,问题也不大。因为datastore里定义xml格式很容易(有一个xml画板),所以写个公共函数转json成xml即可,然后在xml画板里把xml模板调成你生成的模板。这个也可以自己写的,不用到网上找插件
把json数据生成datastore记录行,好处非常的多。首先,很容易进行update()操作;其次,很容易进行数据业务逻辑判断。。。大家都是用pb的,就不多说了
在这部分里,要注意的是xml的保留符号的转义:<、>、&这三个符号一定要转义,不然json的值域里一旦这现这三个符号,生成在xml的值域中时,importstring()一定会报错的。什么情况下值里包含这三个符号呢?呵呵,一般没接触过是考虑不到的,我来告诉你:那就是微信用户的昵称,或者收货人的名字

三、字符串的编码转换,又细分为base64编码与utf8编码
pb在与这些编码格式打交道时,我总结出下来几点:
1.blob()函数生成的值是base64编码,用string(blob)进行解码
2.如果对方接口返回是base64的字符串的话,在pb script中使用blob来接收,然后用string()来解压。如果用string类型来接收,很快就会发现没办法用string()来解码,这时候就得找第三方的对象了,而且不好找
3.utf8与unicode之间的转码,需要使用string()函数,而string()又只能针对blob进行编码转换,所以,原始数据必须得用blob来接收,再进行转换
如果不能实现自由地进行编码转换,PB基本上就与互联网无缘了:php写的网站接口,大部分是utf8编码的,相互通讯时乱码,没搞头了

解决了这三方面的事情,很容易就与各种网站程序的接口进行交互了。小弟正是用了这三方面的知识,顺利地与微信一部分接口进行了交互。

有点拗口,不过等用上的时候仔细思考,就会明白了
...全文
5155 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ntchance 2018-05-20
  • 打赏
  • 举报
回复
确实,PB调用接口开发,方便了很多,感觉焕发了一点点生机,
lao_bulls 2018-05-18
  • 打赏
  • 举报
回复
留个记号以后学习下。
lao_bulls 2018-05-18
  • 打赏
  • 举报
回复
留个记号以后学习一下。
lztqy 2018-05-11
  • 打赏
  • 举报
回复
mk标记下,以后用到再来学习。
lyth2729 2018-03-14
  • 打赏
  • 举报
回复
请问PB如何调用WEBAPI呢?
tomok 2017-09-05
  • 打赏
  • 举报
回复
学习 了 与时俱进
hovoy 2017-09-04
  • 打赏
  • 举报
回复
看看。。 学习。
pcwe2002 2016-06-27
  • 打赏
  • 举报
回复
可以参考这里面的示例包括提供json数据服务和pb通过http得到json, http://download.csdn.net/detail/pcwe2002/9523299
sbks 2016-05-25
  • 打赏
  • 举报
回复
引用 4 楼 jiang396 的回复:
pb+微信我觉得难度不大,因为微信的加解密方式比较简单。我看过支付宝的接口就比较麻烦了,因为支付宝用的是非对称密钥,需要使用公钥私钥来加解签,这块估计目前pb没法完成。
嗯,向你学习,现在还没研究到支付宝
sbks 2016-05-25
  • 打赏
  • 举报
回复
引用 1 楼 xiajinxian 的回复:
base64本来就是字符串 我认为楼主的3.1 和 3.2 有误
嗯.base64就是字符串.我想表达的是pb的blob()与string()是可以实现base64的编码与解码.应该是我的表述有误
sbks 2016-05-25
  • 打赏
  • 举报
回复
引用 2 楼 zhangyangziwo 的回复:
楼主,做的微信什么接口呀?
取token的接口,以及微信小店的接口 个人觉得微信小店还是不错的,解决了付款交易的问题,而且不用自建服务器.程序员只需要关注核销就好了,省时省力
北京大丸子 2016-05-23
  • 打赏
  • 举报
回复
pb+微信我觉得难度不大,因为微信的加解密方式比较简单。我看过支付宝的接口就比较麻烦了,因为支付宝用的是非对称密钥,需要使用公钥私钥来加解签,这块估计目前pb没法完成。
DYFDWX 2016-05-23
  • 打赏
  • 举报
回复
顶一下,也关注这块
zhangyangziwo 2016-05-23
  • 打赏
  • 举报
回复
楼主,做的微信什么接口呀?
A啦Dbit 2016-05-21
  • 打赏
  • 举报
回复
base64本来就是字符串 我认为楼主的3.1 和 3.2 有误

662

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧