私はハイブリッド(Web /デスクトップ)ソフトウェアを作成していますが、2つのモジュール間で同期がロードされています。TidHTTPClientはコード304でタイムアウト例外を発生させます
私はできるだけ多くのHTTPコードをそれらの間の通信に使用しようとしています。
私はRails 3とRuby 1.9を持っています(この問題については重要です)。デスクトップ側では、Delphi 7とIndy 9.0.50を使用しています。
更新されたデータを取得しようとすると、サーバー側に新しいものはありません。この場合、私のサーバーAPIはコード304(変更されていません)を返します。しかし、インディコンポーネント(TidHTTPClient)はタイムアウト例外(EIdReadTimeout)を発生させます。そしてそれは実際には数秒間待っているので、私が快適でないという遅れが生じます。
この動作は問題ありませんか?不適切なHTTPコードを使用していますか?コンポーネントが確実に来ないとデータを待つことを避ける方法はありますか?
この例外は、IDEでアプリケーションを実行しているときに発生しますか?そうであれば、try..exceptとTIが実行していない間にTIdHTTPClient.GETを実行すると、例外が発生しないはずです... – ComputerSaysNo
2つの問題があります。第1に、応答304は「条件付きGET」要求であり、条件付きGETリクエストを送信していますか?第二に、インディ9は古代です。バージョン10にアップグレードしてください。タイムアウトする理由は分かりません。デバッガを使用して何が起きているかを確認し、逆戻りしてIndyがタイムアウトが発生したと判断した理由を確認します。 –