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源码代码中,这里的代码虽 ...
随机推荐
- UVALive 2403 77377解题报告(深搜)
题意:给你一些固定的字符串,在给出数字,根据键盘的对应关系,输出所有的满足条件的字符串,输出顺序无所谓. 思路:因为题目说了,输出比较小,说明测试数据并不强,所以可以暴力回溯求出答案,将所有的给出的字 ...
- Chapter 1 First Sight——15
The red-haired woman looked up. "Can I help you?" 红头发的女人抬头看了一眼说,有什么我能帮助你的吗? "I'm Isab ...
- Android开发教程
http://www.cnblogs.com/liulikui/archive/2011/11/13/2247280.html 博客链接——>环境搭建
- Centos修改默认网卡名
安装系统后默认的网卡名称为 enpXX ,修改为熟悉的eth0 1 vi /etc/default/grub GRUB_TIMEOUT=5GRUB_DEFAULT=savedGRUB_DISABLE_ ...
- java打jar包
一.打包jar文件 1 如果是class文件 jar cvf myjar.jar Foo.class Bar.class 如果是包 jar cvf myjar.jar pac ...
- zf-关于调用页面提示找不到className的原因
多亏了蒋杰 还好他上次告诉我 关于节点的问题 我一看到这个函数就想到了他以前教我的 我这里一开始就调用js函数了 所以没获取到节点 后来把方法换到这里就OK了
- HDU 3743 Frosh Week(归并排序求逆序数)
归并排序求逆序数 #include <iostream> #include <cstdio> using namespace std; #define maxn 1000005 ...
- POJ 3683 Priest John's Busiest Day
2-SAT简单题,判断一下两个开区间是否相交 #include<cstdio> #include<cstring> #include<cmath> #include ...
- xml 解析 python
1 综述 有很多种解析方法. (1) DOM 缺点是:1 不能解析格式不正确或者不规则xml 2据说只能解析utf-8格式,非utf-8需要转码 与SAX比较,DOM典型的缺点是比较慢,消耗更 ...
- Android Studio的使用(三)--包不分级、修改包名
1.如果不喜欢将包逐级展开的话,可以将每一个包名都完整展现出来,只需要勾选Flatten Packages. 2.修改包名 3.填写新的包名 4.点击确认