第 十 章 使 用 H TTP 控 件

第 十 章 使 用 H TTP 控 件 - 图1第 十 章 使 用 H TTP 控 件 - 图2第 十 章 使 用 H TTP 控 件 - 图3第 十 章 使 用 H TTP 控 件 - 图4第 十 章 使 用 H TTP 控 件 - 图5第 十 章 使 用 H TTP 控 件 - 图6第 十 章 使 用 H TTP 控 件 - 图7第 十 章 使 用 H TTP 控 件 - 图8第 十 章 使 用 H TTP 控 件 - 图9第 十 章 使 用 H TTP 控 件 - 图10H T T P ( H y p e r te x t T ra n s port P ro toc ol 意 为 超 文 本 传 输 协 议 ) 是 In te rn e t上 最 流行 的 协 议 很 多 人 对 H TTP 的 细 节 可 能 不 太 了 解 但 事 实 上 我 们 经 常 在 与H TTP 打 交 道 象 大 家 都 非 常 熟 悉 的 W e b 浏 览 器 如 In te rn e t E xp lore r N e ts c a p e N a v iga to r 等 它 们 的 作 用 就 是 通 过 H TTP 协 议 从 W e b 服 务 器 中 请 求 HT M L 文档 然 后 在 客 户 端 解 释 HT M L 文 档 并 转 换 为 页 面 显 示 出 来 现 在 的 问 题 是

第 十 章 使 用 H TTP 控 件 - 图11第 十 章 使 用 H TTP 控 件 - 图12第 十 章 使 用 H TTP 控 件 - 图13第 十 章 使 用 H TTP 控 件 - 图14第 十 章 使 用 H TTP 控 件 - 图15第 十 章 使 用 H TTP 控 件 - 图16第 十 章 使 用 H TTP 控 件 - 图17第 十 章 使 用 H TTP 控 件 - 图18第 十 章 使 用 H TTP 控 件 - 图19您 也 许 并 不 想 在 应 用 程 序 中 嵌 入 W e b 浏 览 器 也 不 希 望 在 外 部 启 动 现 成 的浏 览 器 程 序 您 只 是 想 通 过 H TTP 协 议 检 索 HT M L 文 档 然 后 按 您 的 要 求 去处 理 它 C+ + Bu i ld e r 3 能 做 到 这 一 点 吗 能 完 全 能 C+ + Bu ild e r 3 从N e t M a n a g e 公 司 引 进 了 TN M H TTP 控 件 用 于 在 不 需 要 浏 览 页 面 和 图 像 处 理的 情 况 下 检 索 H TTP 文 档

1 0. 1 HT TP 控 件 的 特 性

Bo d y 特 性

第 十 章 使 用 H TTP 控 件 - 图20声 明 prope r ty B ody : s tr ing ;

第 十 章 使 用 H TTP 控 件 - 图21第 十 章 使 用 H TTP 控 件 - 图22如 果 Inpu tF ile M ode 特 性 设 为 T ru e Bo d y 特 性 是 HT M L 文 档 的 文 件 名 如 果

第 十 章 使 用 H TTP 控 件 - 图23第 十 章 使 用 H TTP 控 件 - 图24Inpu tF ile M ode 特 性 设 为 Fa ls e Bo d y 特 性 是 检 索 到 的 数 据 实 体

B y te s R ecv d 特 性

第 十 章 使 用 H TTP 控 件 - 图25声 明 prope r ty B y te s R e c vd: long in t;

第 十 章 使 用 H TTP 控 件 - 图26第 十 章 使 用 H TTP 控 件 - 图27这 个 特 性 返 回 已 经 接 收 到 的 数 据 长 度 与 B y te s T o ta l特 性 配 合 使 用 可 以 显 示传 输 进 度

By te s S e n t 特 性

第 十 章 使 用 H TTP 控 件 - 图28声 明 prope r ty B y te s S e n t: long in t;

第 十 章 使 用 H TTP 控 件 - 图29这 个 特 性 返 回 已 经 向 H TTP 服 务 器 发 送 的 数 据 长 度

B y te s Tota l 特 性

第 十 章 使 用 H TTP 控 件 - 图30声 明 prope r ty B y te s T o ta l : long in t;

第 十 章 使 用 H TTP 控 件 - 图31第 十 章 使 用 H TTP 控 件 - 图32这 个 特 性 返 回 总 共 要 传 输 多 少 个 字 节 程 序 示 例 如 下

v o id _ fas tc a l l T F o rm 1 : : N M H T T P 1 P acket R e c v d ( T O b ject * S e n d e r )

{

S ta tu s B a r1 -> S im p le T e x t = In t T o S tr(N M H T T P 1 -> B y te s R e c v d )+ " b y te s o f " + In tT o S tr(N M H T T P 1 -> B y te s T o ta l)+ " re c e iv e d " ;

}

C ook ie I n 特 性

第 十 章 使 用 H TTP 控 件 - 图33声 明 prope r ty C ook ie In: s tr ing;

第 十 章 使 用 H TTP 控 件 - 图34第 十 章 使 用 H TTP 控 件 - 图35这 个 特 性 包 含 了 H TTP 服 务 器 发 来 的 C ook ie 关 于 C ook ie s 的 作 用 请 查 阅 其 它书 籍

H e a d e r 特 性

第 十 章 使 用 H TTP 控 件 - 图36声 明 prope r ty H e a d e r : s tr ing;

第 十 章 使 用 H TTP 控 件 - 图37第 十 章 使 用 H TTP 控 件 - 图38如 果 Inpu tF ile M ode 特 性 设 为 T ru e H ead e r 特 性 包 含 的 是 文 件 名 如 果

第 十 章 使 用 H TTP 控 件 - 图39第 十 章 使 用 H TTP 控 件 - 图40Inpu tF ile M ode 特 性 设 为 Fa ls e H ead e r特 性 包 含 的 是 实 际 检 索 到 的 头 标 信 息

H e a d e r I n fo 特 性

第 十 章 使 用 H TTP 控 件 - 图41声 明 p ro p e rty H e a d e rIn fo : T H e a d e rIn fo ;

第 十 章 使 用 H TTP 控 件 - 图42第 十 章 使 用 H TTP 控 件 - 图43第 十 章 使 用 H TTP 控 件 - 图44第 十 章 使 用 H TTP 控 件 - 图45第 十 章 使 用 H TTP 控 件 - 图46第 十 章 使 用 H TTP 控 件 - 图47第 十 章 使 用 H TTP 控 件 - 图48第 十 章 使 用 H TTP 控 件 - 图49第 十 章 使 用 H TTP 控 件 - 图50这 个 特 性 用 于 指 定 要 发 送 给 H TTP 服 务 器 的 头 标 信 息 其 中 T H e a de r Info 的C ook ie 特 性 指 定 要 发 送 的 C ook ie T H e a d e rIn fo 的 L o calM a il A d d re s s 特 性 指 定一 个 E - M a i l地 址 T H e a d e rIn fo 的 L o c a l P rogra m 特 性 指 定 客 户 所 使 用 的 浏 览 器名 称 T H e a d e rIn fo 的 P a ssw o rd 特 性 用 于 给 出 口 令 T H e a de r Info 的 R e fe re r 特性 用 于 指 定 要 查 询 的 文 档 的 UR L T H e a d e rIn fo 的 U s e r ID 特 性 用 于 给 出 用 户名 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t * S e n d e r )

{

N M H T T P 1 -> T im e O ut = 50 0 0 ;

N M H T T P 1 -> Inpu t F i le M o d e = fa ls e ; N M H T T P 1 -> O u tp u tF ile M o d e = fa ls e ;

N M H T T P 1 -> R e portL e v e l = S ta tus _B a s ic ;

if (C h e c k B o x 1 -> C h e c k e d )

{

N M H T T P 1 ->Pro x y = E d i t 1 1 ->T e x t ;

N M H T T P 1 -> P roxy P o r t = S tr T oIn t( E d i t 12-> T e x t) ;

}

N M H T T P 1 -> H ead er In fo -> C o o k ie = E d it 5 -> T ex t ;

N M H T T P 1 -> H e a d e r In fo -> L o c a lM a ilA d d re s s = E d it6 -> T e x t ; N M H TTP 1 -> H e a d e r In fo -> L o c a l P ro g ra m = Ed i t 7 -> Te x t ;

N M H T T P 1 -> H e a d e rIn fo -> R e fe re r = E d i t 8 -> T e x t ; N M H TTP 1 -> H e a d e r In fo -> U s e r Id = Ed i t 9 -> Te x t ;

N M H T T P 1 ->H e a d e r In fo -> Pa s s w o rd = E d i t 1 0 ->T e x t ; N M H T T P 1 -> G e t(E d i t 1 -> T e x t);

M e m o1-> T e x t = N M H T T P 1-> B o d y ; M e m o2-> T e x t = N M H T T P 1-> H e a de r ;

if ( N M H T T P 1-> C ook ie In != " " ) S h ow M e s s a ge (" C o ok ie : / n " + N M H T T P 1-> C o ok ie In);

}

H o s t 特 性

第 十 章 使 用 H TTP 控 件 - 图51声 明 prope r ty H o s t: S tr ing;

第 十 章 使 用 H TTP 控 件 - 图52第 十 章 使 用 H TTP 控 件 - 图53这 个 特 性 用 于 指 定 要 连 接 的 H TTP 服 务 器 的 主 机 名 或 IP 地 址 程 序 示 例 如下

v o id _ fa s tc a ll T F o rm 1 ::N M H T T P 1 In v a lid H o s t( b o o l & h a n d le d )

{

A n s i S tr in g N e wHo s t ;

if (In p u t Q u e ry ( " In v a l id H o s t" , " P le a s e C h o o s e a n o th e r h o s t" , N e w H o s t))

{

NM HT T P 1 -> H o s t = N e wH o s t ; ha n d le d = true ;

}

}

I npu t F ile M o d e 特 性

第 十 章 使 用 H TTP 控 件 - 图54声 明 prope r ty Inpu t F i le M ode : boo le a n ;

第 十 章 使 用 H TTP 控 件 - 图55第 十 章 使 用 H TTP 控 件 - 图56如 果 这 个 特 性 设 为 Fa ls e Bo d y 和 H e ad er特 性 包 含 的 是 实 际 的 数 据 和 头 标

La s t E r ro r N o 特 性

第 十 章 使 用 H TTP 控 件 - 图57声 明 p ro p e rty L a s t E rro rN o : in te g e r;

第 十 章 使 用 H TTP 控 件 - 图58第 十 章 使 用 H TTP 控 件 - 图59这 个 特 性 返 回 最 近 一 次 发 生 的 错 误 的 编 号 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t * S e n d e r )

{

N M H T T P 1 -> G e t(" h ttp ://w w w .b o rla n d .c o m " ) ;

S ta tu s B a r1 -> S im p le T e x t = In t T o S tr(N M H T T P 1 -> L a s t E rro r N o ) ;

}

Lo c a l I P 特 性

第 十 章 使 用 H TTP 控 件 - 图60声 明 prope r ty L o c a l IP : s tr ing ;

第 十 章 使 用 H TTP 控 件 - 图61这 个 特 性 返 回 客 户 计 算 机 的 IP 地 址 ( 以 点 分 法 表 示 )

O u tpu t F ile M o d e 特 性

第 十 章 使 用 H TTP 控 件 - 图62声 明 prope r ty O u tpu t F ile M ode : boo le a n ;

第 十 章 使 用 H TTP 控 件 - 图63第 十 章 使 用 H TTP 控 件 - 图64如 果 这 个 特 性 设 为 Fa ls e 要 发 送 的 数 据 可 以 直 接 从 一 个 字 符 串 中 取 出

Po r t 特 性

第 十 章 使 用 H TTP 控 件 - 图65声 明 prope r ty P o r t: L ong in t;

第 十 章 使 用 H TTP 控 件 - 图66第 十 章 使 用 H TTP 控 件 - 图67这 个 特 性 用 于 指 定 要 连 接 的 H TTP 服 务 器 的 端 口 号 默 认 是 80

P ro x y 特 性

第 十 章 使 用 H TTP 控 件 - 图68声 明 prope r ty P roxy : S tr ing;

第 十 章 使 用 H TTP 控 件 - 图69第 十 章 使 用 H TTP 控 件 - 图70第 十 章 使 用 H TTP 控 件 - 图71这 个 特 性 用 于 指 定 代 理 服 务 器 的 主 机 名 或 IP 地 址 如 果 不 需 要 用 代 理 服 务器 这 个 特 性 必 须 空 着

P rox y P or t 特 性

第 十 章 使 用 H TTP 控 件 - 图72声 明 prope r ty P roxy P o r t : in te ge r ;

第 十 章 使 用 H TTP 控 件 - 图73第 十 章 使 用 H TTP 控 件 - 图74第 十 章 使 用 H TTP 控 件 - 图75这 个 特 性 用 于 指 定 代 理 服 务 器 的 端 口 号 如 果 不 用 代 理 服 务 器 这 个 特 性必 须 空 着

R e m o te I P 特 性

第 十 章 使 用 H TTP 控 件 - 图76声 明 prope r ty R e m o te IP : s tr ing ;

第 十 章 使 用 H TTP 控 件 - 图77这 个 特 性 用 于 指 定 要 连 接 的 H TTP 服 务 器 的 IP 地 址

R e p ly N u m be r 特 性

第 十 章 使 用 H TTP 控 件 - 图78声 明 p ro p e r ty R e p ly N u m b e r : S m a llin t;

第 十 章 使 用 H TTP 控 件 - 图79第 十 章 使 用 H TTP 控 件 - 图80这 个 只 读 的 特 性 返 回 HT T P 服 务 器 响 应 客 户 请 求 的 应 答 代 码 程 序 示 例 如下

vo id _ fa s tc a l l T F orm 1 : : N M H T T P 1 S ta tus ( T O b je c t * S e n de r , A n s i S tr in g S ta tus )

{

if ( S ta tu s B a r 1 != 0 )

{

S ta tu s B a r 1 -> S im p le T e x t = S ta tu s ;

if ( N M H T T P 1-> R e p ly N u m b e r = = 404)

S ta tu s B a r 1 -> S im p le T e x t = " O b je c t N o t F o u n d " ;

}

}

R e p o r t L e v e l 特 性

第 十 章 使 用 H TTP 控 件 - 图81声 明 prope r ty R e po r t L e ve l : in te ge r ;

第 十 章 使 用 H TTP 控 件 - 图82第 十 章 使 用 H TTP 控 件 - 图83第 十 章 使 用 H TTP 控 件 - 图84第 十 章 使 用 H TTP 控 件 - 图85第 十 章 使 用 H TTP 控 件 - 图86第 十 章 使 用 H TTP 控 件 - 图87第 十 章 使 用 H TTP 控 件 - 图88这 个 特 性 用 于 指 定 状 态 信 息 的 详 细 程 度 可 以 设 为 以 下 值 S ta tu s _N one S ta tu s _In fo - rm a t iona l S tatu s _ B as ic S ta tus _R ou tin e s S ta tu s _D e bug

第 十 章 使 用 H TTP 控 件 - 图89S ta tu s _ T ra c e

Se nd H e a de r 特 性

第 十 章 使 用 H TTP 控 件 - 图90声 明 prope r ty S e ndH e a de r : s tr ing;

第 十 章 使 用 H TTP 控 件 - 图91这 个 特 性 包 含 了 要 发 送 给 H TTP 服 务 器 的 头 标 信 息 您 可 以 在 处 理

第 十 章 使 用 H TTP 控 件 - 图92第 十 章 使 用 H TTP 控 件 - 图93O n A bou tT o S e nd 事 件 的 句 柄 中 修 改 这 个 特 性 增 加 其 它 信 息 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : N M H T T P 1 A b ou t T oS e n d( T O b je c t *S e n d e r )

{

N M H T T P 1 -> S en d H e a d e r-> V a lu e s [" S erv e r" ] = " w w w . n etm a s ters llc . c o m " ;

}

S ta tu s 特 性

第 十 章 使 用 H TTP 控 件 - 图94声 明 prope r ty S ta tus : S tr ing;

第 十 章 使 用 H TTP 控 件 - 图95这 个 特 性 返 回 当 前 的 状 态 信 息

T im e o u t 特 性

第 十 章 使 用 H TTP 控 件 - 图96声 明 prope r ty T im e O u t: In te ge r ;

第 十 章 使 用 H TTP 控 件 - 图97第 十 章 使 用 H TTP 控 件 - 图98这 个 特 性 用 于 指 定 一 个 毫 秒 数 如 果 超 过 规 定 的 时 间 S o ck et没 有 响 应 就 触 发异 常

Tra n s a c tio n R e p ly 特 性

第 十 章 使 用 H TTP 控 件 - 图99声 明 prope r ty T ra n s a c tionR e p ly : S tr ing;

第 十 章 使 用 H TTP 控 件 - 图100第 十 章 使 用 H TTP 控 件 - 图101这 个 特 性 返 回 上 一 次 命 令 的 执 行 结 果 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t * S e n d e r )

{

N M H T T P 1 -> G e t(" h ttp ://w w w .n e tm a s te rs llc .c o m " ) ; S how M e s sa g e ( N M H T T P 1-> T ra ns a c t ionR e p ly ) ;

}

1 0. 2 H T T P 控 件 的 方 法

第 十 章 使 用 H TTP 控 件 - 图102第 十 章 使 用 H TTP 控 件 - 图103第 十 章 使 用 H TTP 控 件 - 图104H TTP 控 件 的 方 法 很 少 这 是 因 为 它 只 是 一 个 H TTP 客 户 只 要 拨 通 了 IS P

第 十 章 使 用 H TTP 控 件 - 图105第 十 章 使 用 H TTP 控 件 - 图106第 十 章 使 用 H TTP 控 件 - 图107第 十 章 使 用 H TTP 控 件 - 图108就 可 以 直 接 访 问 H TTP 服 务 器 因 此 它 没 有 诸 如 C onne c t A cce p t L is te n

第 十 章 使 用 H TTP 控 件 - 图109等 函 数

Ab o r t 函 数

第 十 章 使 用 H TTP 控 件 - 图110声 明 proc e dure A bort;

第 十 章 使 用 H TTP 控 件 - 图111第 十 章 使 用 H TTP 控 件 - 图112这 个 函 数 用 于 取 消 一 个 正 在 发 出 的 请 求 相 当 于 IE 上 的 S to p 按 钮

C o p y 函 数

第 十 章 使 用 H TTP 控 件 - 图113声 明 proc e dure C o p y ( U R L 1, U R L 2 : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图114第 十 章 使 用 H TTP 控 件 - 图115这 个 函 数 把 UR L 1 参 数 指 定 的 文 档 复 制 到 UR L 2 参 数 指 定 的 位 置 程 序 示 例如 下

v o id _ fa s tc a ll 1 .B itB tn 2 C lic k ( T O b je c t * S e n d e r )

{

N M H T T P 1 -> C o p y ( " h ttp ://w w w .c r l .c o m /n e w s / n f ro n t.h tm " ,

" h t tp : / / www .c r l .c o m / n e w s / n b a c k .h tm " ) ;

}

第 十 章 使 用 H TTP 控 件 - 图116第 十 章 使 用 H TTP 控 件 - 图117注 意 有 的 H TTP 服 务 器 可 能 不 支 持 这 项 功 能

D e le te 函 数

第 十 章 使 用 H TTP 控 件 - 图118声 明 proc e dure D e le te ( U R L : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图119第 十 章 使 用 H TTP 控 件 - 图120这 个 函 数 删 除 由 UR L 参 数 指 定 的 文 档 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B itB tn 2 C lic k ( T O b je c t * S e n d e r )

{

N M H T T P 1 -> D e le te (" h ttp ://w w w .c r l.c o m / n e w s /n f ro n t.h tm " ) ;

}

G e t 函 数

第 十 章 使 用 H TTP 控 件 - 图121声 明 proc e dure G e t( U R L : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图122第 十 章 使 用 H TTP 控 件 - 图123第 十 章 使 用 H TTP 控 件 - 图124第 十 章 使 用 H TTP 控 件 - 图125第 十 章 使 用 H TTP 控 件 - 图126这 个 函 数 用 于 从 H TTP 服 务 器 检 索 由 UR L 参 数 标 识 的 文 档 如 果Inpu tF ile M ode 特 性 设 为 T ru e 接 收 到 的 数 据 保 存 在 由 Bo d y 特 性 指 定 的 文 件中 如 果 Inpu tF ile M ode 特 性 设 为 Fa ls e 接 收 到 的 数 据 作 为 字 符 串 保 存 在 B ody 特 性 中

H e a d 函 数

第 十 章 使 用 H TTP 控 件 - 图127声 明 proc e dure H e a d ( U R L : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图128第 十 章 使 用 H TTP 控 件 - 图129这 个 函 数 检 索 UR L 参 数 所 指 定 的 文 档 中 的 头 标 信 息 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t * S e n d e r )

{

NM HT T P 1 -> H e a d ( " h t tp : / / www .n e tm a s te rs l lc . c o m " ) ; M e m o1-> T e x t = N M H T T P 1-> H e a de r ;

}

L in k 函 数

第 十 章 使 用 H TTP 控 件 - 图130声 明 proc e dure L ink( U R L , link: s tr ing);

第 十 章 使 用 H TTP 控 件 - 图131第 十 章 使 用 H TTP 控 件 - 图132这 个 函 数 把 L in k 参 数 指 定 的 资 源 连 接 到 UR L 参 数 指 定 的 文 档 中 程 序 示 例如 下

v o id _ fa s tc a ll T F o rm 1 ::B itB tn 2 C lic k ( T O b je c t * S e n d e r ) ;

{

N M H T T P 1 -> L in k (" h ttp ://w w w .c r l .c o m /n e w s / n f ro n t .h tm " ,

" h t tp : / / www .c r l .c o m / n e w s / h o u se . g if" ) ;

}

第 十 章 使 用 H TTP 控 件 - 图133第 十 章 使 用 H TTP 控 件 - 图134注 意 有 的 H TTP 服 务 器 可 能 不 支 持 这 项 功 能

M ove 函 数

第 十 章 使 用 H TTP 控 件 - 图135声 明 proc e dure M ove ( U R L 1, U R L 2 : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图136第 十 章 使 用 H TTP 控 件 - 图137这 个 函 数 把 UR L 1 参 数 指 定 的 文 档 移 到 UR L 2 指 定 的 位 置 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::B itB tn 2 C lic k ( T O b je c t * S e n d e r )

{

N M H T T P 1 -> M o v e (" h ttp ://w w w .c r l .c o m /n e w s / n f ro n t .h tm " ,

" h t tp : / / www .c r l .c o m / n e w s / n b a c k .h tm " ) ;

}

第 十 章 使 用 H TTP 控 件 - 图138第 十 章 使 用 H TTP 控 件 - 图139注 意 有 的 H TTP 服 务 器 可 能 不 支 持 这 项 功 能

O p tio n s 函 数

第 十 章 使 用 H TTP 控 件 - 图140声 明 proc e dure O p t ions ( U R L : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图141这 个 函 数 用 于 检 索 UR L 参 数 所 指 定 的 文 档 的 选 项

Pa tc h 函 数

第 十 章 使 用 H TTP 控 件 - 图142声 明 proc e dure P a tc h( U R L , P a tc hD a ta : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图143第 十 章 使 用 H TTP 控 件 - 图144这 个 函 数 用 Pa tc h D a ta 参 数 指 定 的 数 据 修 补 UR L 参 数 指 定 的 文 档 程 序 示 例如 下

v o id _ fa s tc a ll T F o rm 1 ::B itB tn 2 C lic k ( T O b je c t * S e n d e r )

{

NM HT T P 1 -> P a tc h ( " h t tp : / / www .c r l .c o m /~ te s t / n f ro n t .h tm " , " e n t i ty .s tf " ) ;

}

Po s t 函 数

第 十 章 使 用 H TTP 控 件 - 图145声 明 proc e dure P o s t( U R L , P o s t D a ta : s tr ing);

第 十 章 使 用 H TTP 控 件 - 图146第 十 章 使 用 H TTP 控 件 - 图147第 十 章 使 用 H TTP 控 件 - 图148第 十 章 使 用 H TTP 控 件 - 图149第 十 章 使 用 H TTP 控 件 - 图150第 十 章 使 用 H TTP 控 件 - 图151这 个 函 数 用 于 把 Po s tD a ta 参 数 指 定 的 数 据 传 送 到 UR L 参 数 指 定 的 位 置 如 果O u tpu tF i le M ode 参 数 设 为 T ru e Po s t D a ta 参 数 是 一 个 文 件 名 如 果O u tpu tF i le M ode 参 数 设 为 Fa ls e Po s t D a ta 参 数 是 一 个 字 符 串 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 .B u tto n 1 C lic k ( S e n d e r : T O b je c t) ;

{

N M H T T P 1 -> O u tp u tF ile M o d e = fa ls e ;

N M H T T P 1 -> P o s t(" h ttp ://w w w .s ite to p o s tto .c o m /s ite " , " n a m e = e d p a s s = s m ith " ) ;

}

Un L in k 函 数

第 十 章 使 用 H TTP 控 件 - 图152声 明 proc e dure U n L ink( U R L , lin k: s tr ing);

第 十 章 使 用 H TTP 控 件 - 图153第 十 章 使 用 H TTP 控 件 - 图154这 个 函 数 与 L in k 函 数 正 相 反 用 于 取 消 UR L 参 数 所 指 定 的 文 档 和 L in k 参 数 所指 定 的 资 源 之 间 的 连 接 关 系

1 0. 3 H T T P 控 件 的 事 件

O n A b ou t ToS e n d 事 件

第 十 章 使 用 H TTP 控 件 - 图155声 明 prope r ty O n A bou tT o S e nd: T N o tify E ve n t;

第 十 章 使 用 H TTP 控 件 - 图156第 十 章 使 用 H TTP 控 件 - 图157第 十 章 使 用 H TTP 控 件 - 图158第 十 章 使 用 H TTP 控 件 - 图159当 客 户 端 将 要 把 头 标 信 息 发 向 H TTP 服 务 器 时 将 触 发 这 个 事 件 在 处 理 这 个事 件 的 句 柄 中 您 可 以 修 改 S e ndH e a de r特 性 程 序 示 例 如 下

vo id _ fa s tc a l l T F orm 1 : : N M H T T P 1 A b ou t T oS e n d( T O b je c t *S e n d e r )

{

N M H T T P 1 -> S en d H e a d e r-> V a lu e s [" S erv e r" ] = " w w w . n etm a s ters .co m " ;

}

O n C o n n ec t 事 件

第 十 章 使 用 H TTP 控 件 - 图160声 明 prope r ty O n C onne c t: T N o tif y E v e n t;

第 十 章 使 用 H TTP 控 件 - 图161当 客 户 已 经 成 功 地 连 接 到 H TTP 服 务 器 时 将 触 发 这 个 事 件

O n C o n n ectio n F a ile d 事 件

第 十 章 使 用 H TTP 控 件 - 图162声 明 prope r ty O n C onne c tionF a ile d: T N o tify E ve n t;

第 十 章 使 用 H TTP 控 件 - 图163当 客 户 试 图 登 录 到 H TTP 服 务 器 失 败 时 将 触 发 这 个 事 件

O n D is c o nne c t 事 件

第 十 章 使 用 H TTP 控 件 - 图164声 明 prope r ty O n D is c onne c t: T N o tif y E v e n t;

第 十 章 使 用 H TTP 控 件 - 图165第 十 章 使 用 H TTP 控 件 - 图166第 十 章 使 用 H TTP 控 件 - 图167第 十 章 使 用 H TTP 控 件 - 图168第 十 章 使 用 H TTP 控 件 - 图169第 十 章 使 用 H TTP 控 件 - 图170当 客 户 断 开 与 H TTP 服 务 器 的 连 接 时 将 触 发 这 个 事 件 注 意 在 处 理 这 个 事件 的 句 柄 中 如 果 需 要 访 问 VC L 元 件 的 话 最 好 先 判 断 VC L 元 件 是 否 存 在程 序 示 例 如 下

vo id _ fas tcall T F o rm 1 : :N M H T T P 1 D is co n n ect( T O b ject *S en d e r )

{

if ( S ta tu s B a r 1 != 0 )

S tatu s B a r 1 -> S im p le T e xt = " d is co n n ected " ;

}

O n F a ilu re 事 件

第 十 章 使 用 H TTP 控 件 - 图171声 明 prope r ty O n F a ilure : T F a i lu re E v e n t;

第 十 章 使 用 H TTP 控 件 - 图172第 十 章 使 用 H TTP 控 件 - 图173其 中 T F ailu re E v en t是 这 样 声 明 的

T R e s u lt E v e nt = proc e dure ( C m d: C m dT y p e ) ;

第 十 章 使 用 H TTP 控 件 - 图174第 十 章 使 用 H TTP 控 件 - 图175第 十 章 使 用 H TTP 控 件 - 图176当 调 用 TN M H TTP 控 件 的 某 个 函 数 失 败 时 将 触 发 这 个 事 件 Cm d 参 数 表 明 调用 的 是 哪 个 函 数 程 序 示 例 如 下

v o id _ fa s tc a ll T F o rm 1 ::N M H T T P 1 F a ilu re ( C m d T y p e C m d )

{

s w i tc h( C m d)

{

cas e C m d G E T : S ta tu s B a r 1 -> S im p le T e x t = " G et F a iled " ; b rea k ;

c a s e C m dO P T IO N S : S ta tus B a r 1 -> S im p le T e xt = " O p tio ns F a i le d" ; b re a k; c a s e C m dH E A D : S ta tus B a r 1 -> S im p le T e xt = " H e a d F a i le d" ; b re a k ;

c a s e C m dP O S T : S ta tus B a r 1 -> S im p le T e xt = " P os t F a i le d" ; bre a k; c a s e C m d P U T : S ta tu s B a r 1 -> S im p le T e x t = " P u t F a ile d " ; b re a k ;

c a s e C m dP A T C H : S ta tus B a r 1 -> S im p le T e xt = " P a tc h F a i le d" ; bre a k; c a s e C m dC O P Y : S ta tus B a r 1 -> S im p le T e xt = " C o p y F a i le d" ; bre a k ;

c a s e C m dM O V E : S ta tus B a r 1 -> S im p le T e x t = " M ov e F a i le d " ; b re a k;

cas e C m d D E L E T E : S tatu s B a r 1 -> S im p le T e x t = " D elete F a i le d " ; b rea k ; c a s e C m dL IN K : S ta tus B a r 1 -> S im p le T e xt = " L in k F a i le d" ; b re a k ;

c a s e C m dU N L IN K : S ta tus B a r 1 -> S im p le T e xt = " U nL in k F a i le d" ; b re a k; cas e C m d T R A C E : S tatu s B a r 1 -> S im p le T e x t = " T ra c e F a i led " ; b reak ;

c a s e C m dW R A P P E D : S ta tus B a r 1 -> S im p le T e xt = " W ra p p e d F a i le d" ; b re a k;

}

}

O n H o s t R e s o lv e d 事 件

第 十 章 使 用 H TTP 控 件 - 图177声 明 prope r ty O n H o s t R e s o lv e d : T N o tify E ve n t;

第 十 章 使 用 H TTP 控 件 - 图178第 十 章 使 用 H TTP 控 件 - 图179第 十 章 使 用 H TTP 控 件 - 图180当 H TTP 服 务 器 的 主 机 名 已 找 到 ( 域 名 解 析 ) 就 触 发 这 个 事 件 如 果 解 析 没 有成 功 将 触 发 O n Inva lidH os t事 件

O n I n v a lid H o s t 事 件

第 十 章 使 用 H TTP 控 件 - 图181声 明 prope r ty O n Inva l idH os t: T H a nd le r E v e n t;

第 十 章 使 用 H TTP 控 件 - 图182第 十 章 使 用 H TTP 控 件 - 图183第 十 章 使 用 H TTP 控 件 - 图184当 H o s t特 性 所 指 定 的 主 机 名 是 非 法 的 时 就 触 发 这 个 事 件 程 序 示 例 如 下

vo id _fa s tc a ll T F orm 1 :: N M H T T P 1Inva l idH os t( bool & h a nd le d )

{

A n s i S tr in g N e wH o s t;

if ( Inpu tQ u e ry (" Inv a lid H o s t" , " P le a s e C hoos e a no the r hos t" , N e w H o s t) )

{

NM HT T P 1 -> H o s t = N e w H o s t; ha nd le d = tru e ;

}

}

O n P a ck et R e c v d 事 件

第 十 章 使 用 H TTP 控 件 - 图185声 明 prope r ty O n P a c k e t R e c vd: T N o tif y E ve n t ;

第 十 章 使 用 H TTP 控 件 - 图186第 十 章 使 用 H TTP 控 件 - 图187第 十 章 使 用 H TTP 控 件 - 图188客 户 每 收 到 一 个 数 据 块 就 会 触 发 这 个 事 件 在 处 理 这 个 事 件 的 句 柄 中 您可 以 用 B y te s T o ta l特 性 和 B y te s R e c v d 特 性 显 示 接 收 的 进 度

O n P a ck et S e n t 事 件

第 十 章 使 用 H TTP 控 件 - 图189声 明 prope r ty O n P a c k e t S e n t: T N o tify E ve n t;

第 十 章 使 用 H TTP 控 件 - 图190第 十 章 使 用 H TTP 控 件 - 图191第 十 章 使 用 H TTP 控 件 - 图192客 户 每 发 出 一 个 数 据 块 就 会 触 发 这 个 事 件 在 处 理 这 个 事 件 的 句 柄 中 您可 以 用 B y te s T o ta l特 性 和 B y te s R e c v d 特 性 显 示 发 送 的 进 度

O n R e d ire c t 事 件

第 十 章 使 用 H TTP 控 件 - 图193声 明 prope r ty O n R e d ire c t: T H a n d le r E v e n t ;

第 十 章 使 用 H TTP 控 件 - 图194第 十 章 使 用 H TTP 控 件 - 图195其 中 T H an d ler E v en t是 这 样 声 明 的

T H a nd le r E v e n t = P roc e dure ( va r ha nd le d : boo le a n ) o f O b je c t ;

第 十 章 使 用 H TTP 控 件 - 图196第 十 章 使 用 H TTP 控 件 - 图197第 十 章 使 用 H TTP 控 件 - 图198当 您 试 图 检 索 一 个 UR L 发 生 重 定 向 时 将 触 发 这 个 事 件 如 果 把 ha nd le d 参 数设 为 Fa ls e 就 从 新 的 UR L 处 检 索 文 档

O nS ta tu s 事 件

第 十 章 使 用 H TTP 控 件 - 图199声 明 prope r ty O n S ta tus : T O nS ta tu s ;

第 十 章 使 用 H TTP 控 件 - 图200第 十 章 使 用 H TTP 控 件 - 图201其 中 TO n S ta tu s 是 这 样 声 明 的

T O nS ta tu s = proc e dure ( S e nde r : T C o m pone n t; S ta tu s : s tr ing ) of O b je c t;

第 十 章 使 用 H TTP 控 件 - 图202第 十 章 使 用 H TTP 控 件 - 图203每 次 当 H TTP 服 务 器 返 回 状 态 信 息 时 将 触 发 这 个 事 件 S ta tu s 参 数 就 是 当 前的 状 态

vo id _ fa s tc a l l T F orm 1 : : N M H T T P 1 S ta tus ( T O b je c t * S e n de r , A n s i S tr in g S ta tus )

{

if ( S ta tu s B a r 1 != 0 )

{

S ta tu s B a r 1 -> S im p le T e x t = S ta tu s ;

if ( N M H T T P 1-> R e p ly N u m b e r = = 40 4)

S ta tu s B a r 1 -> S im p le T e x t = " O b je c t N o t F o u n d " ;

}

}

O nSuc c e s s 事 件

第 十 章 使 用 H TTP 控 件 - 图204声 明 prope r ty O n S u c c e s s : T S uc c e s s E ve n t;

第 十 章 使 用 H TTP 控 件 - 图205第 十 章 使 用 H TTP 控 件 - 图206其 中 T S uc c e s s E ve n t是 这 样 声 明 的

T R e s u lt E v e nt = proc e dure ( C m d: C m dT y p e ) ;

第 十 章 使 用 H TTP 控 件 - 图207第 十 章 使 用 H TTP 控 件 - 图208当 某 个 命 令 被 成 功 执 行 后 将 触 发 这 个 事 件 Cm d 参 数 就 是 被 执 行 的 命 令