就像用idHttp的post一样。

解决方案 »

  1.   

    调用GetURLContent就可以了。function FormatHead(Method, SvrIP: string; strURL: string;
                        SvrPort: integer): string;
    begin
      Result:= Method + ' /'+ strURL +' HTTP/1.1'#13#10;    //Get Head
      Result:= Result + 'Referer: http://' + SvrIP;  if SvrPort <> 80 then
        Result:= Result + ':' + IntToStr(SvrPort);  Result:= Result + '/' + strURL + #13#10;
      Result:= Result + 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)'#13#10;
      Result:= Result + 'Host: ' + SvrIP;  if SvrPort <> 80 then
        Result:= Result + ':' + IntToStr(SvrPort);  Result:= Result + ''#13#10;
      Result:= Result + 'Connection: Close'#13#10;
      Result:= Result + 'Cache-Control: no-cache'#13#10;  Result:= Result + #13#10;
    end;function GetURLContent(SvrIP: string; SvrPort: integer; strURL: string): string;
    var
      m_wsData: TWSAData;
      m_Host: PHostEnt;
      m_addr: sockaddr_in;
      m_Buf : array[0..1023] of char;
      m_iLen: integer;
      m_strTmp: string;
      FSocket: TSocket;
    begin
      Result:= '';  WSAStartUp(MAKEWORD(2, 2), m_wsData);  FSocket:= Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
      m_Host:= GetHostByName(PChar(SvrIP));  if m_Host = nil then
        exit;  FillChar(m_addr, SizeOf(m_addr), 0);
      m_addr.sin_family:= AF_INET;
      m_addr.sin_Port  := htons(SvrPort);
      m_addr.sin_addr.S_addr:= PDWORD(PDWORD(m_Host.h_addr)^)^;  Connect(FSocket, m_addr, SizeOf(m_addr));  m_strTmp:= FormatHead('POST', SvrIP, strURL, SvrPort);
      //Send data to server
      Send(FSocket, PChar(m_strTmp)^, Length(m_strTmp), 0);  while true do
      begin
        m_iLen:= Recv(FSocket, m_Buf, SizeOf(m_Buf), 0);    if (m_iLen < 1) then break;    SetString(m_strTmp, m_Buf, m_iLen);
        Result:= Result + m_strTmp;
      end;  CloseSocket(FSocket);
      WSACleanUp;
    end;
      

  2.   

    十分感谢如果是要post http://www.abc.com/test/getusers.jsp 
    userid=navy&password=123456GetURLContent的参数该如何填写呢?
      

  3.   

    var
      sResult : string;
    begin
      sResult := FormatHead('POST', 'www.abc.com', 'http://www.abc.com/test/getusers.jsp?userid=navy&password=123456', 80);
    end;
      

  4.   

    GetURLContent('www.abc.com', 80, 'test/getusers.jsp?userid=navy&password=123456');
      

  5.   

    var 
      sResult : string; 
    begin 
      sResult := FormatHead('POST', 'www.abc.com', 'http://www.abc.com/test/getusers.jsp?userid=navy&password=123456', 80); 
    end; 试过了,不行,主函数是GetURLContent吧
      

  6.   

    HTTP头域增加:
    Format('Content-Length: %d'#13#10, [Length('userid=navy&password=123456')])然后在HTTP头后面直接添加内容'userid=navy&password=123456'另外,1楼的代码当中,HTTP头缺少Accept域。
      

  7.   

    如果你的要求就只是要源代码的话,建议你到http://prj.csdn.net
      

  8.   

    这个不行吗?
    var
      sContent: String;
    begin
      sContent:= GetURLContent('www.abc.com', 80, 'test/getusers.jsp?userid=navy&password=123456');
      //...
    end;我就用这个下载文件的。不是所有的域都是必须的,可以省略一些。
      

  9.   

    把 post 改成 get 就ok了
    相信也能下载文件 不过如果文件大于1024 就要再改一下吧