[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メニューに戻る