次のタスクがあります: HTTPS と認証を使用してファイルをダウンロードします。Indy は進むべき道のようですが、何らかの理由で今のところうまくいきません。私は次のものを用意しています:
- ダウンロードに使用する TIdHTTP コンポーネント
- URL の作成に使用される TIdURI コンポーネント
- 安全な接続を提供する TIdSSLIOHandlerSocketOpenSSL コンポーネント。必要な DLL はバイナリ フォルダーにあります。
このサイトには認証も必要です。以下の例のように、URL にユーザー/パスを含めました。要するに、これはコードです:
URI := TIdURI.Create('https://test.example.com/');
URI.Username := ParamUserName;
URI.Password := ParamPassword;
HTTP := TIdHTTP.Create(nil);
if URI.Protocol = 'https' then
begin
IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IOHandler.SSLOptions.Method := sslvSSLv3;
HTTP.IOHandler := IOHandler;
end;
HTTP.Get(URI.GetFullURI([ofAuthInfo]), FileStream);
このコードを使用すると、「読み取りタイムアウト」 EIdReadTimeout 例外が非常に速く発生します。ブラウザでの URL のテストは問題なく動作します。何が足りないのか、何が間違っていたのかについてのアイデアはありますか?