如何获得请求中的html文本的内容

tongking 2003-04-21 02:04:05
在socket编程中如何获得请求中的html文本的内容
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ehom 2003-06-15
  • 打赏
  • 举报
回复
你用的是什么版本的Delphi?

以Delphi6 为例

TClientSocket对Win32 sockets API进行了封装

设置好
ClientSocket.Host := [服务器]
ClientSocket.Port := 80;
ClientSocket.ClientType:=ctBlocking;

然后就是发送适当的HTTP请求,如GET

SendStr:=SendStr+'GET /'+FileName+' HTTP/1.0'+#13#10;
SendStr:=SendStr+'Accept: */*'+#13#10;
SendStr:=SendStr+'Host: '+Host+#13#10;
SendStr:=SendStr+#13#10;
ClientSocket.Socket.SendText(SendStr);

用ClientSocket.Socket.ReceiveBuf按块获取得到的信息

var
Buf: array[0..1023] of Char;
Rec:integer;

while ClientSocket.Active do
begin
Rec := ClientSocket.Socket.ReceiveBuf(Buf, SizeOf(Buf));
HTMLStr := HTMLStr+Buf;
if Rec = 0 then Break;
end;

获取的信息中前一部分是HTTP头信息,可剔除~~~即遇到某行为#13#10时,后面的才是HTML文本

如果是Delphi7换作TTcpClient

另外在HTTP请求中提交Cookie,可用APIInternetGetCookie获得本地的Cookie信息

服务器需要验证时需要把'[USERNAME]:[PASSWORD]'进行BASE64编码后前缀'Authorization: Basic '发送~~~

至于其它如'User-Agent: ...'什么的可找个NetAnts这类的软件看看,很直观~~~

当然查阅HTTP相关的标准文档更好~~~
xaly 2003-06-15
  • 打赏
  • 举报
回复
在socket编程中如何获得请求中的html的连接内容
nice2002 2003-04-22
  • 打赏
  • 举报
回复
wbrMain.OleObject.Document.Body.innerHtml

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧