Haruyuki Mohri Blog(Delphi)

毛利春幸のブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

VCL.NETでTIdHTTP(Indy10)を使う場合

Delphi2005 VCL.NETでTIdHTTPを使った場合
TIdHTTP.Get(AURL: string): string; overload;を使えばURL上の本文を
取ってこれるがVCL.NETでは文字化けしてしまう。
TidHTTPにはprocedure Get(AURL: string; AResponseContent: TStream); overload;などが
overloadされているので、これを利用する。
文字化けしないfunctionの作り方


function TForm1.GetHttpToStr(const stUrl: String): String;
var
Enc : Encoding;
FIdHttp : TIdHTTP;
ms : TMemoryStream;
ba : TBytes;
begin
Enc := Encoding.Default;//←URLのテキスト本文がShiftJisの場合
//Enc := Encoding.UTF8;//←URLのテキスト本文がutf-8の場合
ms := TMemoryStream.Create;
FIdHttp := TIdHTTP.Create;
try
FIdHttp.Get(stUrl, ms);
ms.Position := 0;
SetLength(ba, ms.Size);
ms.Read(ba, 0, ms.Size);
Result := Enc.GetString(ba);
finally
FIdHttp.Free;
Enc.Free;//←いらないかも
ms.Free;
end;

end;
//↓functionを呼んで使う場合
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Text := GetHttpToStr('http://127.0.0.1/cgi-bin/test.exe');
end;


残念ながら今のところEUCには対応していない。

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2005/09/28(水) 12:58:16|
  2. Delphi.NET

Profile

Twitter...

最近の記事

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。