delphi和后台PHP交互

1、通过idhttp交互

2、会产生中文乱码情况

delphi2007处理方法

unit httpClient;

interface

uses
  IdHTTP, Classes;

function httpPost(strUrl: string; params: TStringList = nil): string;
function httpGet(strUrl: string; params: TStringList = nil): string;

implementation

function httpPost(strUrl: string; params: TStringList = nil): string;
var
  http: TIdHttp;
  i: Integer;
  listTemp: TStringList;
begin
  listTemp := TStringList.Create;
  http := TIdHttp.Create;
  try
    //参数进行utf编码化
    if Assigned(params) then
    begin
      for i := 0 to params.Count - 1 do
      begin
        listTemp.Values[params.Names[i]] := AnsiToUtf8(params.Values[params.Names[i]]);
      end;
    end;

    result := UTF8ToAnsi(http.Post(strUrl, listTemp));
  finally
    http.Free;
    listTemp.Free;
  end;
end;

function httpGet(strUrl: string; params: TStringList = nil): string;
var
  http: TIdHttp;
  strTemp: string;
begin
  http := TIdHttp.Create;
  try
    //参数进行utf编码化
    if Assigned(params) then
    begin
      params.Delimiter := '&';
      strTemp := AnsiToUtf8(strUrl + '?' + params.DelimitedText);
    end
    else
      strTemp := AnsiToUtf8(strUrl);

    result := UTF8ToAnsi(http.Get(strTemp));
  finally
    http.Free;
  end;
end;

end.

delphi2010处理方法

function GetWebData(URL: string; paramJson: string): string; stdcall;
var
  slist: TStringList;
  http: TIdHttp;
begin
  try
    http := TIdHttp.Create;
    slist := TStringList.Create;
    slist.Text := 'name=' + paramJson; //加入json,方便php调用
    result := http.Post(URL, slist);
  finally
    http.Free;
    slist.Free;
  end;
end;

procedure TfrmMain.Button1Click(Sender: TObject);
var
  strRet: string;
begin
  strRet := GetWebData('http://localhost/tp5/public/index.php/index/index/test','博客园');
  ShowMessage(strRet);
end;

procedure TfrmMain.Button2Click(Sender: TObject);
var
  strRet,strPath: string;
  idHttpObj: TIdHTTP;
begin
  try
    idHttpObj := TIdHTTP.Create(nil);
    strPath := TIdURI.PathEncode('http://localhost/tp5/public/index.php/index/index/test?name=博客园');
    strRet := idHttpObj.Get(strPath);
    ShowMessage(strRet);
  finally
    idHttpObj.Free;
  end;
end;

 

转载于:https://www.cnblogs.com/lobtao/articles/7194111.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值