0

私はAndroidアプリケーションによってサーバーにデータを投稿するためにこのコードを持っています。したがって、サーバーにデータを投稿する前に、接続が失われた(wifiまたは3gから)か、投稿中に接続が失われたとします。データがサーバーに投稿されていることを確認するにはどうすればよいですか?サーバー側からの応答をフィードバックメッセージまたは応答として実装しますが、それで十分だと思いますか?

別のシナリオ(銀行のような重要なシステム)

データを送信し、データが適切に投稿された(たとえば、データベースに挿入された)が、応答の取得中にエラーが発生したとします。論理的には、応答が受信されなかったため、たとえば、プロセスが投稿されなかったため、再度投稿する必要があることをユーザーに通知します。これは問題だ !!

では、このレベルの保険を実施または獲得するための最良の方法は何でしょうか。

try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(http://www.exampleof.the/page_that_wil_receive_the_data.php?data=example);

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();           

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //"ISO-8859-1,utf-8;q=0.7,*;q=0.7"
        //"iso-8859-1"
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "utf-8"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;

    }
4

2 に答える 2

2

各投稿にGUIDを追加し、トランザクションのハッシュとともにGUIDを返す応答を返します。サーバー上のGUIDを追跡します。サーバーの応答が無効な場合は、再試行してください。同じGUIDのトランザクションを受信した場合は、それを破棄しますが、受信したことを確認します。

于 2013-01-03T15:03:47.803 に答える
1

どちらの質問でも、HTTP 200応答コードにより、リクエストがサーバーに正常に投稿されるようになります。

于 2013-01-03T15:53:54.610 に答える