问题是这样的:
在远程服务器上查找,比如172.21.123.104下的\aaaData下的文件a?.dat,已知用户名和口令。前面按ehom高手的指点,但返回的都是404,为何?请各位高手指教。
发送一个HTTP请求,HEAD /aaaData/a.datWinSocket知道吧?TClientSocket对Win32 sockets API进行了封装设置好
ClientSocket.Host := '172.21.123.104';
ClientSocket.Port := 80;
ClientSocket.ClientType:=ctBlocking;
ClientSocket.Active := True;然后就是发送适当的HTTP请求SendStr:=SendStr+'HEAD /aaaData/a.dat HTTP/1.0'+#13#10;
SendStr:=SendStr+'Accept: */*'+#13#10;
SendStr:=SendStr+'Host: 172.21.123.104'+#13#10;
SendStr:=SendStr+'Authorization: Basic '+Base64Encode(UserName+':'+Password)+#13#10;//Base64Encode对用户名和密码进行Base64编码
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));
  Str := Str + Buf;
  if Rec = 0 then Break;
end;//404表示文件不存在,200表示成功,这个就不用我说了吧?