delphi用TWebBrowser组件在DELPHI中POST数据和取得网页源文件


本文整理自网络,侵删。

 delphi用TWebBrowser组件在DELPHI中POST数据和取得网页源文件
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
URL:OleVariant;
POST:OleVariant;
target:OleVariant;
flag:OleVariant;
header:OleVariant;
PostStr:String;
PostLen,Index:Integer;
begin
URL:='http://port.fudan.edu.cn:58080/amserver/UI/Login?goto=http%3A%2F%2Fwww.urp.fudan.edu.cn%3A81%2Fepstar%2Frs%2Fpr%2Fgwkh%2Fdzgwkh%2Fgr_dzgwkh_index.jsp&gotoOnFail=http://www.urp.fudan.edu.cn/portal?.flag=fail';
PostStr:='Login.Token1=04538&Login.Token2=*******&Submit=%B5%C7+%C2%BC';
target:=NULL;
flag:=0;
PostLen := Length(PostStr);
// 用构建 varByte 类型的 Variant array
Post := VarArrayCreate([0, (PostLen - 1)], varByte);
// 填充数据
for Index := 0 to PostLen - 1 do
Post[Index] := Ord(PostStr[Index + 1]);
// 填补头部数据注意:application
Header := 'Content-Type: application/x-www-form-urlencoded';

WebBrowser1.Navigate2(URL,flag,target,POST,Header);
while WebBrowser1.Busy=True do
Application.ProcessMessages ;
if WebBrowser1.ReadyState =READYSTATE_COMPLETE then
Memo1.Text :=WebBrowser1.OleObject.Document.all.tags('HTML').Item(0).outerHTML;
else
Memo1.Text:='页面加载失败';
end;


end.

注意:Navigate2里的参数必须定义成OleVariant类型,并且必须使用变量进行传递参数,不能直接在里面赋常量值!

相关阅读 >>

Delphi实现win10下Delphi 10.3.1 inline hook 调试器法获取寄存器并修改

Delphi xe6、xe5、xe7在android创建快捷方式

Delphi 数组复制利用copymemory 最为完美

Delphi 实现简易语音发音(基于tts方式)

Delphi inttohex

Delphi url取得文件名

Delphi使用tclientdataset时不携带midas.dll的方法

Delphi中自适应窗体的实现

Delphi 域名转ip并判断ip是否可以联通 复制代码

Delphi idhttp访问datasnap有密码验证的中间件

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...