場景:的Android與WindowsMobile的消費的WebService
- 我開發
Windows Mobile
應用,而在2005年Vb.net
- 我開發一個應用程序的
Android
有Eclipse
。
這兩個應用程序具有相同的邏輯。兩個應用程序都使用相同的Web服務。
服務器運行在Windows Server 2003
,服務應用程序使用VB.net 2005
進行部署。
測試:
- 三星Galaxy S2與
Android
。 - 有人茅根設備與
Windows Mobile
。
相同的web服務調用採用:
Android
時間:3分44秒。Windows Mobile
時間:0分54秒。
時間使用的時鐘計算出的,並代表了時間的用戶。
差異:
Windows Mobile
發送和接收數據表。Windows Mobile
通過Base64的序列發送的照片(5張30KB每個)Android
發送和接收JSON
(數據表被轉換爲JSON
)Android
通過Base64的序列發送的照片(5張30KB每個)
爲什麼時間如此不同?
在Android
我消耗使用下面的代碼的Web服務:
公共類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;
}
}
它的工作原理。我很明顯地調整了json的web服務方法。但是,服務方法具有相同的邏輯。 – AAP 2012-03-08 18:19:39