[英]How to ensure firebase has received push notification sent from app server, without android app
[英]How to ensure data has been post (sent) to remote server
我正在使用此代码通过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;
}
在每个帖子中添加一个GUID,然后返回一个响应,返回GUID和事务的哈希值。 跟踪服务器上的GUID。 如果服务器的响应无效,请重试。 如果收到具有相同GUID的事务,则将其丢弃,但确认已收到。
我相信对于这两个问题,HTTP 200响应代码都可以确保您的请求已成功发布到服务器中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.