问题描述:
android HttpURLConnection + WebService 进行数据交互。
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
httpConn.setConnectTimeout(ConnectTimeout);//20s
httpConn.setReadTimeout(ReadTimeout);//200s
httpConn.setDoInput(true);
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("Content-type",
"application/json;charset=utf-8");
现在的机能是,有一组号码在DB内,多台终端去取号,假如11001号被取到,那么这个状态立马更新,让别的终端取不到,除非他退出那个页面才能把这个状态再改回去,别的手机才能取到11001。
在现场作业的时候网络状态不佳,可能出现超时状态。经过测试,超时之后导致手机取不到数据,但是webService已经跟DB完成了数据更新。
现在的紧急对策就是,链接超时设置20s 如果20s连webservice都连接不上 那么直接断开。读取数据设置200s。目的是如果20s内能够建立链接那么200s的读取数据时间应该足够了。
------解决方案--------------------
个人感觉你在客户端无法很好解决这个问题,主要还是服务端的逻辑上要优化,比如当超时再不要修改DB状态什么的。
如要时效性要求高的话应该用socket来完成