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源码代码中,这里的代码虽 ...
随机推荐
- CodeForces 687C The Values You Can Make(动态规划)
这个也可以说是一个01背包了,里面也有一些集合的思想在里面,首先dp方程,dp[i][j]代表着当前数值为i,j能否被构成,如果dp[i][j] = 1,那么dp[i+m][j] 和 dp[i+m][ ...
- 代码异味---Code smell
程序员应该竭尽全力去写那些重复的代码.以下几点是我目前最需要改进的地方. 重复代码: 相同或者相似的代码存在于一个以上的地方. 长方法: 一个非常长的方法.函数或者过程. 巨类: 一个非常庞大的类. ...
- shell判断文件是否存在,不存在则创建
if [ ! -d "/myfolder" ]; then mkdir /myfolder fi 注意[]中的空格,否则会报错
- angularJS 系列(五)--controller AS 语法
原文: http://www.cnblogs.com/whitewolf/p/3493362.html 这篇国外的文章也非常好: http://codetunnel.io/angularjs-cont ...
- oracle sql 分页
Oracle实现分页时,需要引入一个rownum的函数,rownum可以给记录一个类似于id的字段. 以下收整理了常用的几种sql分页算法,数据库以Oracle中emp为例.查询结果如下: SQL&g ...
- Lorenzo Von Matterhorn
Lorenzo Von Matterhorn Barney lives in NYC. NYC has infinite number of intersections numbered with p ...
- SMB/CIFS协议解析
1.SMB协议与CIFS协议的区别 139端口是一种TCP端口,该端口在通过网上邻居访问局域网中的共享文件或共享打印机时就能发挥作用.445端口也是一种TCP端口,该端口在 Windows 2 ...
- Kali-linux安装之后的简单设置--转载
1.更新软件源:修改sources.list文件:leafpad /etc/apt/sources.list然后选择添加以下适合自己较快的源(可自由选择,不一定要全部): #官方源deb htt ...
- VMware NAT端口映射外网访问虚拟机linux
本文目的: 一. SSH连接 二. 访问HTTP VMware Workstation提供了两种虚拟机上网方式,一种bridge,一种NAT,bridge可以获得公网地址,而NAT只能是内网地址了. ...
- FZU 2168 防守阵地 I(前n项和的前n项和)
这是一道很容易超时的题,我超了n次了,后来队友提示我才想到,bigsum ! ! ! !就是前n项和的前n项和 #include<iostream> #include<cstdio& ...