因为一个任务,最近几天一直在研究Webbrowser的相关功能,下面是收集到的一些方法

//根据URL获取请求Header
function GetAllHeaders(URL: string): string;
var
hSession: HInternet;
hURL: HInternet;
hReq: HInternet;
bRet: Boolean;
sBuff: String;
lBuffLen:DWord;
dwParam: DWord;
aResult: String;
aServer: string;
aFilePath: string;
I: Integer;
begin
Result := 'Unknown error';
aFilePath := URL;
if pos('http://', aFilePath) = 1 then
Delete(aFilePath, 1, 7);
aServer := SplitAtToken(aFilePath, '/');
dwParam := 0;
hSession := InternetOpen(
'http generic',
INTERNET_OPEN_TYPE_PRECONFIG, {use IE's setup to conect to the web}
nil, nil, 0);
try
if hSession = nil then
Exit; hURL := InternetConnect(hSession,
PChar(aServer), {the server we wants to conect to}
INTERNET_DEFAULT_HTTP_PORT, nil, nil,
INTERNET_SERVICE_HTTP, 0, 1);
try
if hURL = nil then
Exit; hReq := HttpOpenRequest(hURL,
nil, {nil defaults to the 'GET' verb}
PChar(aFilePath), {actual file on the server}
HTTP_VERSION, nil, nil,
INTERNET_FLAG_RELOAD, 0);
try
if hReq = nil then
Exit;
if not HttpSendRequest(hReq, nil, 0, 0, 0) then
Exit;
SetLength(sBuff, 1024); //set plenty of room in buffer
lBuffLen := Length(sBuff); bRet := HttpQueryInfo(hReq,
HTTP_QUERY_RAW_HEADERS_CRLF, {get all headers in one move}
@sBuff[1], lBuffLen, dwParam);
if bRet then
Result := sBuff
else
Result := 'QueryInfo error = '+IntToStr(GetLastError);
finally
InternetCloseHandle(hReq);
end;
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hSession);
end;
end;

  

//获取 WebBrowser 控件当前显示页面的Html
function GetCompleteHTMLSource(wb: TWebBrowser) : string;
var
iDoc: IHTMLDocument2;
iall : IHTMLElement;
begin
Result := '';
if Assigned(wb.Document) then begin iDoc := wb.Document as IHTMLDocument2;
iall := iDoc.body; while iall.parentElement <> nil do begin
iall := iall.parentElement;
end; Result := iall.outerHTML;
end;
end;

Delphi webbrowser 的一些方法的更多相关文章

  1. delphi WebBrowser的使用方法详解(五)-难点释疑

    网页代码:<SELECT id=fy onchange=TouchRefresh(1) name=fy> <OPTION selected value=15>每頁顯示15筆&l ...

  2. delphi WebBrowser的使用方法详解(六)

    通篇引用mshtml; 一.webbrowser获取滚动条的位置 function GetScrollPositionX(FWB:TEmbeddedWB):Integer;     //水平滚动条位置 ...

  3. delphi WebBrowser的使用方法详解(三)

    WebBrowser 操作记要 WebBrowser1.GoHome;  //到浏览器默认主页 WebBrowser1.Refresh;  //刷新 WebBrowser1.GoBack;  //后退 ...

  4. delphi WebBrowser的使用方法详解(四)-webbrowser轻松实现自动填表

    webbrowser轻松实现自动填表 步骤如下:  第一步:获取网页 调用Webbrowser 的Navigate系列函数.等待网页装载完成,得到document对象. 在调用 webBrowser. ...

  5. delphi WebBrowser控件上网页验证码图片识别教程(一)

    步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...

  6. <总结>delphi WebBrowser控件的使用中出现的bug

    Delphi WebBrowser控件的使用中出现的bug:  1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...

  7. Delphi WebBrowser控件的使用(大全 good)

    Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application      如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...

  8. Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息

    Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息 http://www.cnblogs.com/zhwx/archive/2012/08/28/266055 ...

  9. [delphi]indy idhttp post方法

    网易 博客 LOFTCam-用心创造滤镜 LOFTER-最美图片社交APP 送20张免费照片冲印 > 注册登录  加关注 techiepc的博客 万事如意 首页 日志 LOFTER 相册 音乐 ...

随机推荐

  1. linux日志查询技巧

    问题描述: 18803959896用户反馈,通讯录备份失败,提示“身份验证失败,请注销账号后重新登录”,不管用账号密码登录还是一键登录,都是提示这个.请协助查询.谢谢~ 备注:三星note3最新版本彩 ...

  2. ZooKeeper与仲裁模式

    为了让服务器之间可以通信,服务器间需要一些联系信息.理论上,服务器可以使用多播来发现彼此,但我们想让ZooKeeper集合支持跨多个网 络而不是单个网络,这样就可以支持多个集合的情况. 为了完成这些, ...

  3. mongodb主从复制 副本集(六)

    主从复制副本集 8888.conf dbpath = D:\software\MongoDBDATA\07\8888 #主数据库地址port = 8888 #主数据库端口号bind_ip = 127. ...

  4. django -- 内置分页

    urls.py from django.conf.urls import url from conn_oracle import views urlpatterns = [ url(r'^page/' ...

  5. Eclipse快捷键大全(补充)

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+Shift+O 自动导入所需要的包(这个用的次数也相当多)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增 ...

  6. 通过maven自动修改idea的compiler

    Idea在使用过程中,经常会自动修改compiler水平,有时会变成jdk1.5,不支持@override,也不能忽略实例化的泛型参数,更不支持try-with-resource. 版本太低,很多特性 ...

  7. ios规格证明

    解决的方法是在Info.plist文件中添加:ITSAppUsesNonExemptEncryption 设置为NO

  8. IDEA04 工具窗口管理、各种跳转、高效定位、行操作、列操作、live template、postfix、alt enter、重构、git使用

    1 工具窗口管理 所有的窗口都是在view -> tools windows 下面的,这些窗口可以放在IDEA的上下左右各个位置:右键某个窗口后选择move to 即可进行位置调整 2 跳转 2 ...

  9. 从零开始安装hue(原创-转载注明出处)

    hue安装需要从github上面下载源码,进行编译安装.github上面给出的安装教程很简单 然而实际上在安装的过程中遇到了无数个坑,下面开始真正意义上的从零开始安装hue. 安装环境: centOS ...

  10. Openssl enc命令

    一.简介 enc - 对称加密例程,使用对称密钥对数据进行加解密,特点是速度快,能对大量数据进行处理.算法有流算法和分组加密算法,流算法是逐字节加,由于其容易被破译,现在已很少使用:分组加密算法是将数 ...