在socket编程中如何获得请求中的html文本的内容

解决方案 »

  1.   

    wbrMain.OleObject.Document.Body.innerHtml
      

  2.   

    在socket编程中如何获得请求中的html的连接内容
      

  3.   

    你用的是什么版本的Delphi?以Delphi6 为例TClientSocket对Win32 sockets API进行了封装设置好
    ClientSocket.Host := [服务器]
    ClientSocket.Port := 80;
    ClientSocket.ClientType:=ctBlocking;然后就是发送适当的HTTP请求,如GETSendStr:=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相关的标准文档更好~~~