Indyを使用してHTTPSのホームページにアクセスする方法

解決


ペケポン  2012-02-11 17:13:03  No: 41592  IP: 192.*.*.*

IdHttpコンポーネントのIOHanderプロパティにTIdSSLIOHandlerSocketOpenSSLコンポーネントのオブジェクトを設定してHTTPSにアクセスするプログラムを作成しています。

libeay32.dll とssleay32.dllが必要との事で、コンパイルしてできたexeファイルがあるフォルダにコピーして置きましたが、「Could not load SSL library」のメッセージが表示されます。

なぜ、エラーが発生するのでしょうか?
delphi5でindy9を使っています。

最終的にはHTTPSのサーバーからファイルをダウンロードしたい。
ダウンロード先のHTTPSサーバーにはURLにIDとpasswordをパラメタで指定する方法しかない様で、できればその方法も教えていただければありがたいです。

よろしくお願いします。

編集 削除
かんとく  2012-02-13 00:40:17  No: 41593  IP: 192.*.*.*

私も同じエラーが出たことがあります。

私の場合は、libeay32.dllとssleay32.dllのバージョンが、Indyのバージョンとあっていなかったみたいです。

他のバージョンのibeay32.dllとssleay32.dllを試してみたらいいんじゃないかと思います。

解決できなかったら、ごめんなさい。

編集 削除
ペケポン  2012-02-23 08:54:43  No: 41594  IP: 192.*.*.*

ありがとうございました。
他のバージョンで問題なく動きました。
それにしても、どのバージョンを選択して良いのか、全然わからないですね。
ここに、訪ねてみて本当によかったです。

編集 削除
とおりがかり  2012-02-23 11:17:21  No: 41595  IP: 192.*.*.*

解決後に申し訳ないですが、後人のために、どのバージョンを使って
うまくいったか記載してはいただけないでしょうか?

編集 削除
かんとく  2012-02-29 00:18:47  No: 41596  IP: 192.*.*.*

私の場合を書いておきます。

はじめ、Delphi2007でコードを書いたときは、エラーは起きませんでした。

その後、コードをそのままDelphiXE2にコピーしたところ、エラー(Could not load SSL library)がでました。

さらにその後、コードはそのままで、libeay32.dllとssleay32.dllをダウンロードして、XE2で作成したEXEファイルと同じフォルダにこの2つのファイルをコピーしたところ、エラーは出なくなりました。

DelphiXE2の開発環境が今ないので、わかる部分だけ書きます。

***************************

Delphi:2007
Indy:10.1.5
ssleay32.dll:2002/08/13
libeay32.dll:2002/08/13

Delphi:XE2
ssleay32.dll:2011/10/11
libeay32.dll:2011/10/11

編集 削除