0

を使用AFHTTPClientしてバックエンド サーバーに接続し、画像をアップロードするために使用していますmultipartFormRequestWithMethod。設定を使用して、ネットワーク コンディショナーを使用して iPhone アプリでリクエストをテストしていVery Bad Networkます。これは、リクエストに通常よりもはるかに長い時間がかかることを意味します。

アクティビティ インジケーターが表示されないようにするために、30 秒後にリクエストをキャンセルします。非常に悪いネットワーク シナリオでは、これは次のことを意味します。

  1. アップロードが完了する前にリクエストがキャンセルされた
  2. アップロードが完了した後、リクエストが完了する前にリクエストがキャンセルされます。

2 番目のケースでは、サーバーは情報を受信して​​データベースに保存しますが、クライアントはエラー (操作がキャンセルされます) を受け取ります。そのため、ユーザーは後で画像を再度アップロードしようとすると、同じ画像が 2 回表示されることになります。 .

リクエストがいつサーバーに到達したかを知っていれば、同じ画像を 2 回投稿することを避けることができます。

サーバーがリクエストを受信したかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

2

サーバーが以前のリクエストを完了したかどうかを知る唯一の方法は、サーバーにコンテンツがあるかどうかを確認することです。

2 番目の PUT/POST を行う前に、画像があると予想される URL に対してHEADリクエストを行い、画像が存在するかどうかを確認します。

于 2013-06-07T10:10:54.077 に答える