2016-02-09 51 views
6

私のアプリケーションでは、IdHTTP.Getを使用しています。コードの一部:私はlibeay32.dllとssleay32.dllを両方が同じフォルダ内にある、hereからOpenSSLをダウンロードした10.6.2.5263Indy 10 - IdHTTP.Get "SSLライブラリをロードできませんでした"

var 
    IdHTTP: TIdHTTP; 
begin 
    IdHTTP := TIdHTTP.Create(nil); 
    Output := IdHTTP.Get(url); 
    ... 
    IdHTTP.Free; 

IdHTTP.Versionを使用するには、私のバージョンを提供します私のアプリケーションの。

Windows 10で新しいラップトップを使用しているので、この問題が発生しました。 この問題を解決する方法を教えていただけたら幸いです!

+3

Indyの 'WhichFailedToLoad()'関数を 'IdSSLOpenSSLHeaders'ユニットで使用して、読み込みに失敗したDLLを見つけます。 – whosrdaddy

+1

外部接続の(アプリケーション固有の)ブロックのファイアウォール設定を確認してください – mjn

+1

@whosrdaddy libeay32.dllがロードに失敗しました – Teun

答えて

2

https URLにアクセスする必要がある場合は、TidHTTPコンポーネントの作成を完了するために、いくつかのコードを追加する必要があります。

てみ使用このような何か:

// create components 
HTTPs := Tidhttp.Create(nil); 
IdSSL := TIdSSLIOHandlerSocket.Create(nil); 
// try..finally for free 
try 
    // ini 
    HTTPs.ReadTimeout := 30000; 
    HTTPs.IOHandler := IdSSL; 
    IdSSL.SSLOptions.Method := sslvTLSv1; 
    IdSSL.SSLOptions.Method := sslvTLSv1; 
    IdSSL.SSLOptions.Mode := sslmUnassigned; 
    ... 

あなたはuses節にIdSSLOpenSSLを追加する必要があります。

+1

私が言及したコードは過去に私のために働いていましたが、私が使っている他のコンピュータでもやっています。それは私の新しいノートパソコンではない。だから私はコードが問題ではないと仮定します。 – Teun

+2

http://www.indyproject.org/sockets/blogs/ChangeLog/20141222.en.aspxを参照してください.IOHandler作成コードは単純な使用例では必要ありません – mjn

関連する問題