delphi和后台PHP交互  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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


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

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

执行时间: 0.12614893913269 seconds