Delphi 封装的TIdHTTP GET POST 请求


本文整理自网络,侵删。

 

uses idhttp;

/// <summary> 

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

/// </summary> 

/// <param name="http">TIdHTTP</param> 

/// <param name="URL">指定URL</param> 

/// <param name="Max">Get请求失败最大重试次数</param> 

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

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; 

 

/// <summary> 

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

/// </summary> 

/// <param name="http">TIdHTTP</param> 

/// <param name="URL">指定URL</param> 

/// <param name="Data">要提交的数据(UTF8String)</param> 

/// <param name="Max">Post请求失败最大重试次数</param> 

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

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; 

相关阅读 >>

Delphi注册与卸载系统服务

Delphi mscomm1自动获取串口

Delphi旋转位图

Delphi 异或加解密

Delphi图像数据压缩解压缩实例

Delphi 快速获取文件大小(使用_lopen和fileseek,此函数可以快速获取文件大小,即使文件已经被其它程序锁定)

Delphi 文件名变小写的函数

Delphi 读取dll所有输出函数名

Delphi win10系统已管理员的权限运行应用程序

Delphi xe6 android 实现base64字符串的解析

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...