2012-02-27 3 views
1

Http Connection을 사용하여 서버에 데이터를 게시하는 응용 프로그램을 작성 중입니다. 에뮬레이터에서 응용 프로그램을 검사 할 때 내 응용 프로그램이 제대로 작동합니다. 내 웹 서비스는 응답을 생성하는 데 너무 많은 시간이 걸리고 에뮬레이터는 적절한 방식으로 응답합니다. 어떻게 든 장치에 응용 프로그램을 설치하면 내 응용 프로그램이 서버에 데이터를 두 번 게시합니다. 나는 그것을 검사했다 ... 누군가는 이것에서 도주하는 방법에 어떤 해결책 있는가 ???HTTP 연결 두 번 데이터 게시

여기서는 전송 요청 코드를 첨부하고 있습니다. 모바일 앱이 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()); 
+1

나는 onCreate와 onResume 모두에서 동일한 코드를 사용하고 있기 때문에 강력하다고 생각합니다. – kosa

+0

더 완전한 코드 인용 부호가 없으면 thinksteep의 의견이 가능한 원인으로 동의합니다 – Kerry

+0

@thinksteep : buddy..this는 J2ME 코드입니다. 안드로이드 코드가 아닙니다 .. –

답변

1

"처리 중 ..."과 같은 장소 소유자 텍스트를 사용하여 답변을 제공 할 수 있습니까? 그러면 웹 브라우저에서 다시 시도해보십시오.

+0

문제는 내 친구 .. –

+0

@ NiravBhandari, 잘 듣고 해결되었습니다. :-) –

1

개발자가 아니므로 어쨌든 웹 서비스는 응답을 지연시키지 않아야합니다. 나는 이것이 당신의 문제라고 생각하며 해결해야한다. 캐시를 만들거나 응답을 사전 처리합니다.

시간 제한을 변경할 수 있지만 (고정 된 것으로 보임) 많은 모바일 (wap) 프록시가 30 초의 시간 초과를 가지면 좋지 않습니다.