我正在编写一个应用程序,我在其中使用Http Connection在服务器上发布数据。当我在模拟器中检查它时,我的应用程序正常工作。我的Web服务花了太多时间来生成响应,我的模拟器也以适当的方式响应。不知何故,当我在设备上安装应用程序时,我的应用程序在服务器上发布了两次数据。我已经检查了......有没有人有任何解决方案如何逃避这个?
这里我附上了发送请求的代码。我认为移动应用程序在达到HTTP超时时发送另一个请求,但我不知道问题是什么。请帮助我。
String param=
"function=OpenRecharge&LoginId="+SharedVariable.getUserInfo().getLoginID()
+"&BatchId="+SharedVariable.getSelectedProduct().getBatchID()
+"&SystemServiceID="+SharedVariable.getSelectedProduct().getSystemServiceID()
+"&ReferalNumber="+strMobileNo
+"&Amount="+strAmount
+"&FromANI="+fromMoNo
+"&Email="
+"&Checksum="+Checksum;
System.out.println("Final Parameter:\n"+param);
connection = (HttpConnection) Connector.open(url);
//Connector.open(param, strAmount, quit)
connection.setRequestMethod(HttpConnection.POST);
connection.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
connection.setRequestProperty("Accept_Language","en-US");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
OutputStream out = connection.openOutputStream();
out.write(param.getBytes());
out.flush();
//System.out.println("Status Line Code: " + connection.getResponseCode());
//System.out.println("Status Line Message: " + connection.getResponseMessage());
is=connection.openDataInputStream();
int chr;
StringBuffer sb=new StringBuffer();
while ((chr = is.read()) != -1)
sb.append((char) chr);
System.out.println("Response===>"+sb.toString());
答案 0 :(得分:1)
我不是app开发者,无论如何,你的网络服务不应该有很大的响应延迟。我认为这是你的问题,你应该解决它。制作缓存或预处理您的回复。
虽然您可以更改超时(似乎已修复),但不建议使用许多移动(wap)代理超时30秒。
答案 1 :(得分:1)
你能用一个占位符文本提供一个答案,例如“处理......”然后经过一段时间后网页浏览器再次尝试?