分享

pb与互联网接口的交互

 quasiceo 2016-11-24
互联网时代,以目前的主流技术,个人觉得涉及到以下三方面

一、数据生成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编码的,相互通讯时乱码,没搞头了

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

有点拗口,不过等用上的时候仔细思考,就会明白了


可以参考这里面的示例包括提供json数据服务和pb通过http得到json, 
http://download.csdn.net/detail/pcwe2002/9523299

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多