delphi 封装的TIdHTTP GET POST 请求  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

delphi 封装的TIdHTTP GET POST 请求


uses idhttp;

///

 

/// 向指定URL发起Get请求 

///

 

/// TIdHTTP 

/// 指定URL 

/// Get请求失败最大重试次数 

/// 返回腾讯服务器响应(string类型的json格式数据) 

function GetMethod(http: TIdHTTP; URL: String; Max: Integer): String;

 

var 

  RespData: TStringStream; 

begin 

  RespData := TStringStream.Create('', TEncoding.UTF8); 

  try 

    try 

      http.Get(URL, RespData); 

      http.Request.Referer := URL; 

      Result := RespData.DataString; 

    except 

      Dec(Max); 

      if Max = 0 then 

      begin 

        Result := ''; 

        exit; 

      end; 

      Result := GetMethod(http, URL, Max); 

    end; 

  finally 

    FreeAndNil(RespData); 

  end; 

end; 

 

///

 

/// 向指定URL提交数据(Post) 

///

 

/// TIdHTTP 

/// 指定URL 

/// 要提交的数据(UTF8String) 

/// Post请求失败最大重试次数 

/// 返回腾讯服务器响应(string类型的json格式数据) 

function PostMethod(http: TIdHTTP; URL: String; Data: UTF8String; 

    Max: Integer): String; 

var 

  PostData, RespData: TStringStream; 

begin 

  RespData := TStringStream.Create(''); 

  PostData := TStringStream.Create(Data); 

  try 

    try 

      if http = nil then 

        exit; 

      http.Post(URL, PostData, RespData); 

      Result := RespData.DataString; 

      http.Request.Referer := URL; 

    except 

      Dec(Max); 

      if Max = 0 then 

      begin 

        Result := ''; 

        exit; 

      end; 

      Result := PostMethod(http, URL, Data, Max); 

    end; 

  finally 

    http.Disconnect; 

    FreeAndNil(RespData); 

    FreeAndNil(PostData); 

  end; 

end; 


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.047307968139648 seconds