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;