Indyのコンポーネントを使ってhttpsでサーバーとのデータのやり取りをします。
TIdSSLIOHandlerSocketOpenSSLを使いますが、例によってTurbo Delphiのコンポーネントパレットには載ってないので使うにはちょっと一手間かかります。
libeay32.dll、ssleay32.dll, IdSSLOpenSSLHeaders.pasが必要になります。
事前に上記ファイルを入手し、プログラムと同じフォルダにコピーします。
http://indy.fulgan.com/SSL/ から openssl-0.9.8h-i386-win32-Indy-IntraWebEdition.zip をダウンロードすると、その中に含まれています。
TIdSSLIOHandlerSocketOpenSSLを使いますが、例によってTurbo Delphiのコンポーネントパレットには載ってないので使うにはちょっと一手間かかります。
libeay32.dll、ssleay32.dll, IdSSLOpenSSLHeaders.pasが必要になります。
事前に上記ファイルを入手し、プログラムと同じフォルダにコピーします。
http://indy.fulgan.com/SSL/ から openssl-0.9.8h-i386-win32-Indy-IntraWebEdition.zip をダウンロードすると、その中に含まれています。
uses IdHttp, IdSSLOpenSSL, Classes; procedure SSLPost(URL: String; Params: TStrings; Response: TStream); var http: TIdHTTP; ssl: TIdSSLIOHandlerSocketOpenSSL; const HTTP_TIMEOUT = 10000; begin http := TIdHTTP.Create; ssl := TIdSSLIOHandlerSocketOpenSSL.Create(nil); ssl.SSLOptions.Method := sslvTLSv1; ssl.SSLOptions.Mode := sslmUnassigned; ssl.SSLOptions.VerifyMode := []; ssl.SSLOptions.VerifyDepth := 0; //Timeoutを設定しないとエラーになる http.ReadTimeout := HTTP_TIMEOUT; http.ConnectTimeout := HTTP_TIMEOUT; http.IOHandler := ssl; try http.Post(URL, Params, Response); finally http.Free; ssl.Free; end; end;GET の場合は、PostのところをGetに変えます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます