Mam's WebSite
建築CGパース住宅CGパース

Mamの覚書Q&A検索

トップページMamの覚書Q&A検索Delphi(Indy)⇒Q&A


大項目:「 Delphi 」 - 中項目:「 Indy 」

「 IndyのTIdHTTPを使って文字エンコードUTF8のSSLサイトをGETするには  」

IndyでHTTPS通信で字エンコードUTF-8のサイトをGETするには?


回答

USESに以下ユニットを追加します。
  IdBaseComponent,IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL
 
フォームにTMemoとTButtonを配置します。
配置したボタンをダブルクリックして以下ソースを入力します。

ソース

procedure TForm1.Button1Click(Sender: TObject);
var http:TIdHTTP;
    ssl:TIdSSLIOHandlerSocketOpenSSL;
    strm:TStringStream;
begin
  http:=TIdHTTP.Create(self);
  ssl:=TIdSSLIOHandlerSocketOpenSSL.Create(self);
  //UTF8のサイトの場合
  strm:=TStringStream.Create('',TEncoding.UTF8);
  try
    http.IOHandler:=ssl;
    http.Get('https://lolipop-2054f7684d8a5fac.ssl-lolipop.jp/',strm);
    strm.Position:=0;
    //取得したハイパーテキストを出力
    memo1.Lines.Text:=string(strm.ReadString(strm.size));
  finally
    http.Free;
    ssl.Free;
    strm.Free;
  end;
end;


Mam's WebSite