pb-http,webservice,db,api

本文介绍了如何在PowerBuilder中利用inet非可视对象和InternetResult对象来与Internet交互,特别是通过HTTP接口获取和处理数据。示例程序演示了从网页抓取信息并保存到本地,以及调用HTTP短信接口发送短信。文章讨论了避免使用OLE容器,提倡使用PB内置的InternetResult对象以提高稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

inet非可视对象是PB中提供的专门用来和Internet交互的对象,使用该对象可以编写Internet处理程序。该对象使用时,需要首先创建一个继承自InternetResult对象的用户自定义对象,在该自定义对象上编写脚本对从Internet上返回的结果进行处理。下面我们给出一个实例,该实例从企业黄页之类的网站中获取各个企业的信息,保存到本地计算机中。这样的软件对于从事电话推销的公司是非常需要的。 
按照以下步骤开发该软件: 
1、创建一个Standard Class,选择InternetResult对象,然后在该对象缺省函数InternetData中编写如下脚本(我们希望将获取到的内容保存到文件中,文件的格式是HTML的): 
String ls_filename 
string ls_content 
integer li_FileNum 
integer li_pos1,li_pos2 

ls_content = string(data) 
li_pos1 = Pos(ls_content,'<table align=center border=0 cellpadding=0 cellspacing=1>') 
li_pos2 = Pos(ls_content,'联系人') 
li_pos2 = pos(ls_content,'</table>',li_pos2) + len('</table>') - 1 
ls_content = Mid(ls_content,li_pos1,li_pos2 - li_pos1) 
if Pos(ls_content,'010') > 0 then 
ls_filename = String(now(),'hhmmss') + right('00000' + string(rand(100)),3) + '.htm' 
li_FileNum = FileOpen("d:/data/" + ls_filename, & 
StreamMode!, Write!, Shared!, Replace!) 
FileWrite(li_FileNum, ls_content) 
FileClose(li_FileNum) 
end if 

Return 1 

服务端(jsxserver),采用c++ + iocp + pbni + zlib编写而成,支持PB长连结(提供pb客户端demo),支持http get post调用,pbni调用pbcall里的nvo_pbnicall(服务端业务代码全由PB编写),具体请看demo客户端代码中的说明; 实现的功能:1.pb客户端调用功能,可实现类似easerver iiop的功能,比easerver多了服务端心跳,客户端自动判断是否断网,自动重连,客户端单开线程序通迅,前端界面不会卡死(用eserver不管是iiop还是ws高锋期经常未响应卡半天),传输码流比easerver小,程序总体运行效率也高一些,支持http get post调用,做接口很容易实现;2.客房端点对点发消息(由服务端转发),可以实现类似在线聊天的功能,响应http post也可以通过服务端即时转发给PB的客户端,PB客户端生成响应数据返回http调用端,客户如果用的局域网系统,又想做移动端的远程查询(小数据量),软件供应商有公网服务器的话,可用本框架打通实现,我们用此框架实现过医生手机远程连入门诊内部查询修改自已的预约、患者资料;3.服务端即时通知功能,pb长连结客户端、http调用,服务端处理完成后,可以给在线的pb长连结客户端发通知消息,客户端收到通知后可即时做出相应操作,例如:酒店系统,前台开房后,全系统房态即时刷新,门诊系统患者前台挂号后,医生端即时就看的到,等等,比客户端轮询来的效果好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值