Powerbuilder编程技巧 如何获取网页的HTML源码
直接使用的三种方式
1、 PB内部对象 Inet object
2、 API 函数
3、 Ole中的Microsfot Web 游览器对象
一、Inet object:
1、Inet object
The Inet object provides the ability to display a Web page in the default browser, access the HTML for a specified page, and send data to a CGI, ISAPI, or NSAPI program.。以上是PB helper的阐明,翻译成中文就是:供给了在Windows缺省阅读器中显示WEB页,以及向支撑CGI,ISAPI,NSAPI的利用程序发送数据的才能。似乎还是不好懂得如何获取html,我也不懂得,假如你不知道她必需和另外一个对象 InternetResult object一起应用的话。
2、InternetResult object
好吧,我们持续看看InternetResult object 是什么东西,简略的说我们可以把它看作一个buffer,用于吸收异步数据传输的对象,就是说,它是一个buffer,用于接受并寄存html代码的东西,这回轻易懂得了吧。
InternetResult object无法直接使用,比如直接定义
InternetResult lnet_ InternetResult //这是非法的,我们看一下它的help
The InternetResult object acts as a buffer,齿轮泵, receiving and caching asynchronous data, as it is returned using the Internet in response to the GetURL and PostURL function calls. The InternetResult object also provides the ability to process this data.
To use an InternetResult object, create a standard class user object that defines an InternetData function to process the passed HTML.
我们看斜体字部分,helper告知我们必须创建一个standard class来使用它,为什么要这么麻烦,我的理解是,实际上这里是借助创建一个use object 来实现一个新的“线程”。然后用这个新的对象来接受 GetURL返回的数据??新的线程来完成异步数据吸收,否则会阻塞现有利用。
3、又一个必需要解释的东西Internetdata
这个是InternetResult的一个函数,尺度的写法是:servicereference.InternetData (Blob data )。好吧,很愉快我们有了一个函数了,pb又来了,蒸馏设备,这个函数是不能直接被使用的,它不会返回任何东西。算了,我们不贴help了,反正这是一个覆盖函数。假如你使用的是6.5以下的版本,你必须在的internetResult的继续对象上定义函数InternetData()作为基类中的同名函数的笼罩函数。该笼罩函数必须包括一个类型为blob的参数采取传值方法传递,其返回值必需是Integer类型.在函数体中处置data参数.。如果应用7.0以上的版本,那体系会主动帮你创立这个笼罩函数,电厂脱硫,你只要在里面些代码就可以了。
4、开端代码吧
1)创立一个InternetResult 的 standard class 并取名为n_internetresult。
2)在n_internetresult中创立一个实例变量 string is_data
3) 在n_internetresult:internetdata()函数写上如下代码
is_data = string(data , EncodingUTF8!)
这里必须阐明,string指定字符集只有在9.0版本后才有效,假如在这之前的版本上应用,恭喜你,只能直接调用api函数来转换了
4)好了,随意弄个窗口,再随意弄个按钮,在按钮里写一下代码
n_internetresult n_ir
inet inet_base
string ls_url = ‘http://www.google.com’
inet_base.GetURL(ls_url , n_ir)
messagebox(‘www.google.com:html’, n_ir.is_data)
5) 你可以运行它了
5、很主要,必需要阐明的一些规矩
1)Inet无法获取大于65535的源码,它会直接截断它,很愁闷吧。
2)有些网站会断定游览器,你将无法获取它的源码。 相关的主题文章:
Powerbuilder编程技巧 如何获取网页的HTML源码的更多相关文章
- phantomjs 下拉滚动条获取网页的全部源码
//codes.js var system = require('system'); var fs = require("fs"); //console.log('Loading ...
- 并发编程(六)——AbstractQueuedSynchronizer 之 Condition 源码分析
我们接着上一篇文章继续,本文讲讲解ReentrantLock 公平锁和非公平锁的区别,深入分析 AbstractQueuedSynchronizer 中的 ConditionObject 公平锁和非公 ...
- C#编程总结(七)数据加密——附源码
C#编程总结(七)数据加密——附源码 概述 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容 ...
- jenkins获取git上的源码
jenkins获取git上的源码会遇到三种情况,我们在这里会分别介绍一下: 一.获取git上public(公有)的项目 只需配置仓库的URL即可 jenkins下使用git获取源码的配置方法 二.获取 ...
- python(30) 获取网页返回的状态码,状态码对应问题查询
获取访问网页返回的状态码 html = requests.get(Url) respon = html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表 ...
- Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)
http://blog.csdn.net/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Andr ...
- 用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)
本文将介绍基于Senparc.Weixin微信开发框架来实现网页授权来获取用户基本信息.先生成包含授权及回调url信息的二维码:用户用微信扫描之后,被要求授权以获取Ta的用户基本信息:用户授权后,通过 ...
- 并发编程(四):ThreadLocal从源码分析总结到内存泄漏
一.目录 1.ThreadLocal是什么?有什么用? 2.ThreadLocal源码简要总结? 3.ThreadLocal为什么会导致内存泄漏? 二.ThreadLoc ...
- Eclipse用法和技巧二十三:查看JDK源码
使用java开发,如果能阅读JDK的经典代码,对自己的水平提高是很有帮助的.笔者在实际工作中总结了两种阅读JDK源码的方式.第一种下载android源代码,直接在android源码代码中,这里的代码虽 ...
随机推荐
- HDU 5833 (2016大学生网络预选赛) Zhu and 772002(高斯消元求齐次方程的秩)
网络预选赛的题目……比赛的时候没有做上,确实是没啥思路,只知道肯定是整数分解,然后乘起来素数的幂肯定是偶数,然后就不知道该怎么办了… 最后题目要求输出方案数,首先根据题目应该能写出如下齐次方程(从别人 ...
- HDU - 2502 Subway
题目链接:http://poj.org/problem?id=2502 分析: 告诉一些地铁线路,从起点到终点,中途可以步行,可以坐地铁,找一条最短的路 主要是把图建立好,然后直接dijkstra或者 ...
- meta 常用标签总结
声明:并非原创 meta元素工有3个可选属性(http-equiv.name.scheme)和一个必选属性(content),content定义与http-equiv或name属性相关的元信息 可选属 ...
- 如何让Spring MVC接收的参数可以转换为java对象
场景: web.xml中增加了一个DispatcherServlet配置,并在同级目录下添加了**-servlert.xml文件,搭建起了一个spring mvc的restful访问接口. 问题描述: ...
- Chapter 1 First Sight——10
Instead, I was ivory-skinned, without even the excuse of blue eyes or red hair, despite the constant ...
- mysql 远程连接不上 %用户已经添加了
修改mysql的配置文件/etc/mysql/my.conf,将bind-address后面增加远程访问IP地址或者禁掉这句话就可以让远程机登陆访问了. 记得要重启mysql服务哦 service m ...
- Linux添加系统环境变量的两种方法
方法一 export PATH=/usr/local/bin:$PATH 这种方法的PATH 在终端关闭 后就会消失.所以还是建议通过编辑/etc/profile来改PATH 方法二 # vim /e ...
- 解读QML之四
解读QML之四 QML对象属性 每一个QML对象类型都定义了一系列属性.每创建一个该对象类型的实例,该实例的这些属性也自动被创建了.接下来我们讨论几种不同类型的属性. id属性 每一个QML对象类型都 ...
- Linux Mint 17.2个性化配置
一.开启root 帐号登陆 设置一个口令,使用: sudo passwd root 当你使用完毕后屏蔽root帐号使用以下命令锁定root帐号 : sudo passwd -l root 如何在终端模 ...
- CentOS6.5 添加epel源
0.安装yum优先级插件 yum install yum-priorities 1.epel简介: https://fedoraproject.org/wiki/EPEL/zh-cn rpm -Uvh ...