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源码代码中,这里的代码虽 ...
随机推荐
- UIWebView & javascript
http://blog.163.com/m_note/blog/static/208197045201293015844274/ UIWebView是IOS SDK中渲染网面的控件,在显示网页的时候, ...
- 项目总结SpringMVC相关
流程文字概述1.用户发送请求至前端控制器DispatcherServlet2.DispatcherServlet收到请求调用HandlerMapping处理器映射器.3.处理器映射器找到具体的处理器, ...
- js 去除html标签
function removeHTMLTag(str) { str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag str = str.r ...
- elasticsearch的5种分片查询优先级
elasticsearch可以使用preference参数来指定分片查询的优先级,使用时就是在请求url上加上preference参数,如:http://ip:host/index/_search?p ...
- 转:设置Loadrunner负载机临时文件目录
最近在跑稳定性测试 3 X 24小时的时候,发现负载机产生的日志还运行记录等等竟然有100多G! C盘空间不足,但是D盘还有700多G空间呢,怎么让临时文件转移到D盘? 此处分两种情况: 一. 修改本 ...
- IP地址、子网掩码详解
如何通过子网掩码划分网段 资料一: 一.缺省A.B.C类地址,子网掩码: 二.子网掩码的作用: code: IP地址 192.20.15.5 11000000 00010100 00001111 ...
- YII2 随笔 视图最佳实践
yii\base\Controller::render(): 渲染一个 视图名 并使用一个 布局 返回到渲染结果. yii\base\Controller::renderPartial(): 渲染一个 ...
- HBase的Shell命令
1.HBase提供了一个shell的终端给用户交互 2.HBase Shell的DDL操作 (1)先进入HBase的 Shell命令行,即HBASE_HOME/bin/hbase shell …… & ...
- apache禁止公网IP访问的配置
由于最近在配置负载均衡环境 外网使用Nginx做代理,分发到Apache服务器上,所以不希望Apache配置的服务被外网访问,只希望内网Nginx访问,所以只能使用局域网IP访问 配置方法: 打开Ap ...
- DataSet和List<T> 泛型之间互相转换 (转载, 作者写的很好)
/DataSet与泛型集合间的互相转换 //利用反射机制将DataTable的字段与自定义类型的公开属性互相赋值. //注意:从DataSet到IList<T>的转换,自定义类型的公开属性 ...