2012年11月27日火曜日

TIdURI を使ってパラメータを取得する

Delphi-ML で GET のパラメータを取得したい、という話を間違えて取らえた際にできたコードです!
TIdURI を使うと URI をパースしてくれるので、↓こんな感じでパラメータを取れます。

uses
System.SysUtils, System.Classes, IdURI;
 
procedure GetParams(const iURL: String; const iStrings: TStrings);
var
URI: TIdURI;
Params: TArray<String>;
Param: String;
begin
URI := TIdURI.Create(iURL);
try
Params := URI.Params.Split(['&']);
 
iStrings.Clear;
for Param in Params do
iStrings.Add(TIdURI.URLDecode(Param));
finally
URI.Free;
end;
end;

TIdURI の Params は、単純に '?' を探してそれ以降を切り出した物なので、& で split したり、URLDecode したりしています。

0 件のコメント:

コメントを投稿