[Delphi] Indyをバージョンアップする




トップページへ

Delphi2010に内蔵されている Indy(Internet Direct) をバージョンアップしたメモ書きです。

 

当方は

Mr.XRAY 様の「Indy コンポーネントのインストール

をありがたく参考にさせて頂きながらインストールしました。

 

ですので、この記事は「補足」としてご覧頂ければ幸いです。

 

また難易度が高く手間がかかります。操作を間違えると、既存のアプリケーションに多大な影響が出て、コンパイルすらできなくなります。


注意事項 Indyのバージョンアップによって不具合がありました

過去に作成したアプリで

IdHTTP1.ResponseTextがバージョンアップ前は

「HTTP/1.1 200 OK」

だったのに、バージョンアップによって

「HTTP/1.1 400 Error」

となりました。

 

そこで、URLのエンコードの処理

IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions - [hoForceEncodeParams];

を加えることで解決しました。

 

Mr.XRAY様の「TIdHTTP を使用して指定 URL にデータを送る」の上部にも「Indyのバージョンによっては自動エンコードが正常に機能しない場合がある」と明記されています。

 

私の場合、このエンコードの処理が

Indy 10.5.5 では不要でしたが

Indy 10.6.2 では必須、ということが判明しました。

 


 

既存アプリケーションや開発ツール(Delphi)に不具合が出る可能性があります。

そのため、当記事およびMr.XRAY様の記事を「当方らは一切責任を負いません。あくまでも自己責任でご覧、実施されることをご了承いただける方のみ」ご覧下さい。

 

■確認環境

Delphi2010

■初期のIndyバージョン

10.5.5

 

補足画面

パッケージの

Indy 10 コア設計時

Indy 10 プロトコル設計時

を削除するので、削除前の状態を画面として残すと

*タップ(クリック)で拡大します。

 

Delphiに初期同梱している Indy 系ファイル・フォルダの削除をします。

 

当方は念のため、削除ではなく別のフォルダに移動しました。

例えばbinフォルダ内

 

 

Indyコンポーネントをダウンロード・インストール

参考サイトでもフリーソフト「TortoiseSVN」を使用されていたので、それを使用し Indyコンポーネントをダウンロード・インストールしました。

 

Delphiで使えるようにパッケージ単位でコンパイルして、最後にインストールしました。

パッケージ名は

Indy 10 Core Design Time

Indy 10 Protocols Design Time

に変更され、パスも変わっていました。

 

以上でIndy のバージョンが 10.5.5 → 10.6.2 になりました。

 

例えば「IdSSLIOHandlerSocketOpenSSLコンポーネント」がバージョンアップされ

Methodプロパティに

sslvTLSv1_1

sslvTLSv1_2

が追加されていました。

 

Delphiメニューに戻る