0

IndyをSSLとUbuntu11にインストールされたLazarusのIdHTTPコンポーネントで動作させようとしています。httpsを削除してhttpのみで動作するため、コードがhttp投稿に適していることがわかります。だから私はそれがLinuxライブラリを欠いているSSLとindyのコンポーネントだと思います。ウィンドウの場合、私は2つのDLLを含めることに慣れlibeay32.dllていましたが、ssleay32.dll正常に機能しました。

しかし、Linuxではそれは別の話のようです。私が持っている唯一のコードは郵便番号です:

IdHttp1.Post('url', StringList, ReturnStreamList);

私が言ったように、httpsがなくてもうまく機能しますが、SSLを試しても何も起こりません。キャッチする必要があるのでエラーはありませんがtryexceptキャッチに関しては何もしていません。

私はOpenSSLをインストールしていますが、次の方法でもインストールしていますapt

libcrypto++8
libcrypto++-dev
libssl-dev
libssl0.9.8

/usr/lib私は両方のファイルlibcrypto.soに行き、libssl.soそこにいます。

IdHTTPポストオペレーションでSSLをLazarusおよびIndyと連携させるために欠けているアイデアはありますか?

編集:わかりました、以下のアドバイスに従った後、私は例外を追加しました:

on E: EIdHTTPProtocolException do
       showmessage(htp1.ResponseText);

これは私にエラーを与えますError creating SSL context

EDIT2:straceを実行し、SSLライブラリを開く出力領域をここに貼り付けました:http: //pastebin.com/fL6tTSGg

4

1 に答える 1

1

これはとても簡単だったので、私は気が狂います!ハハ

SSLに間違った方法を使用していたようです。私はに設定TidSSLioHandlerSocketOpenSSL.SSLOptions.Methodする必要がありましたsslvSSLv23、それはでしたsslvSSLv2

これですべてが正常に機能します:)

于 2012-11-20T13:44:40.187 に答える