HTTP-соединение Публикация данных дважды - PullRequest
1 голос
/ 28 февраля 2012

Я пишу приложение, в котором я использую Http Connection для публикации данных на сервере. Мое приложение работает нормально, когда я проверяю его в эмуляторе. Мой веб-сервис занимает слишком много времени для генерации ответов, и мой эмулятор также отвечает должным образом. Каким-то образом, когда я установил приложение на устройство, мое приложение дважды публикует данные на сервере. Я проверил это ... У кого-нибудь есть решение о том, как избежать этого ???

Здесь я прилагаю свой код запроса на отправку. Я думаю, что мобильное приложение отправляет другой запрос, когда оно достигает HTTP Time out, но я не знаю, в чем проблема. Пожалуйста, помогите мне.

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());

Ответы [ 2 ]

1 голос
/ 28 мая 2012

Можете ли вы предоставить ответ с заполнителем, например, "обработка ...", после чего через некоторое время веб-браузер попытается снова?

1 голос
/ 28 февраля 2012

Я не разработчик приложений, в любом случае ваш веб-сервис не должен иметь большой задержки для ответа.Я думаю, что это ваша проблема, и вы должны решить ее.Создание кеша или предварительная обработка вашего ответа.

Хотя вы можете изменить время ожидания (оно кажется фиксированным), не рекомендуется, поскольку многие мобильные прокси-серверы (wap) имеют время ожидания 30 с.

...