2012-03-08 6 views
0

시나리오 :안드로이드 WindowsMobile 대 WebService에

  • 은 내가 EclipseAndroid에 대한 응용 프로그램을 개발하고 Vb.net 2005
  • 으로, Windows Mobile에 대한 응용 프로그램을 개발하고있다.

두 앱 모두 동일한 로직을 사용합니다. 두 앱 모두 동일한 웹 서비스를 사용합니다.

서버가 Windows Server 2003에서 실행 중이고 서비스 응용 프로그램이 VB.net 2005을 사용하여 배포되었습니다.

테스트 : Android

  • 삼성 갤럭시 S2.
  • 누군가 중국산 Windows Mobile 기기입니다.

같은 웹 서비스 호출을 취

  • Android 시간 : 3 분 44초.
  • Windows Mobile 시간 : 0 분 54 초.

시간은 시계를 사용하여 계산되었으며 사용자를 나타냅니다.

차이 :

  • Windows Mobile는 보내고 datatables를 수신한다.
  • Windows Mobile (5 개 사진 각 30KB)
  • Android는 보내고 JSON (5 개 사진 각 30KB)
  • Android는 Base64로 순차로 사진을 전송한다 (데이터 테이블은 JSON로 전환된다)를 수신 Base64로 순차로 사진을 전송

    왜 시간이 이렇게 다른가요? 당신이 ksoap2 - 안드로이드 사용하는 스 니펫 코드에서 판단

    공용 클래스 Func_WebService {

    private static int Ksoap_timeout = 40000; 
    private static String NAMESPACE = "http://tempuri.org/"; 
    private static String URL="http://XXX.137.xxx.79/Sincro_test_android/Service1.asmx"; 
    
    private static SoapObject request=null; 
    private static SoapSerializationEnvelope envelope=null; 
    private static SoapPrimitive resultsRequestSOAP=null; 
    
    public static String PRIMERLOGGIN(String Usuario,String Contrasena,String Emei){ 
    
        final String METHOD_NAME = "PRIMERLOGGIN"; 
        final String SOAP_ACTION ="http://tempuri.org/PRIMERLOGGIN"; 
    
        request = new SoapObject(NAMESPACE, METHOD_NAME); 
        request.addProperty("user", Variables.Usuario); 
        request.addProperty("pass", Variables.Contrasena); 
        request.addProperty("X", Variables.Emei); 
    
        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
        envelope.dotNet = true; //se asigna true para el caso de que el WS sea de dotNet 
        envelope.setOutputSoapObject(request); 
    
        HttpTransportSE transporte = new HttpTransportSE(URL); 
    
        try {  
         transporte.call(SOAP_ACTION, envelope); 
         resultsRequestSOAP = (SoapPrimitive)envelope.getResponse(); 
         return resultsRequestSOAP.toString() ; 
        } 
        catch (Exception e) { 
         return Estados_Sincro.Error_coneccion; 
        } 
    
    } 
    
  • 답변

    0

    : Android에서

    나는 다음과 같은 코드를 사용하여 웹 서비스를 소비합니다. 이 라이브러리는 SOAP 웹 서비스 용입니다. 그러나 당신은 JSON을 사용하는 Android에 대해 이야기하고 있습니다. SOAP를 사용하도록 서버를 변경하고 ksoap2-android를 계속 사용하거나 다른 라이브러리와 JSON을 구문 분석하기 위해 Android 응용 프로그램으로 변경해야합니다.

    +0

    작동합니다. 나는 분명히 json을위한 웹 서비스 메소드를 채택했다. 그러나 서비스 방법은 동일한 논리를가집니다. – AAP

    0

    왜 데이터 테이블을 사용합니까? 자네가 Json과 데이터 연재를 연재하고 있다고 가정하고 있나? 그래서 많은 추가 데이터가 발생합니다. 직렬화 해제는 시간이 많이 소요되는 프로세스입니다.

    로그인 방법을 사용하고 있습니다. j2me 및 windows mobile에 대한 일부 로그인 옵션을 구현했습니다.그러나 나는 항상 사용자 정의 객체와 응답 시간을 선호합니다.

    +0

    @R Quijano 코드 스 니펫은 하나의 예일뿐입니다. json 데이터 테이블은 다음과 같습니다. [{ ""ID_INSPEC ": 255843,"MARCA ":"CHEVROLET ","MODELO ":"CORSA GL 1.6 3 P ","ANIO ": 1234,"CHASIS ":"M " "MOTOR": "M", "COLOR": 2, "KILOMETROS": "1111", "VERIFICO": "N", "ASIENTOS": "5", "VTV_NUM": "11111111", "VTV_VTO" "05/2009", "Odom_5": "N", "TIPOVEHICULO": 16, "PATENTE": "EOS180", "COMBUSTIBLE": 1}] 그게 전부입니다. 이런 5 가지 방법이 있습니다. – AAP

    관련 문제