私は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;
}