情景:
Windows Mobile
2005开发Vb.net
的应用。Android
为Eclipse
开发一个应用。两个应用程序都具有相同的逻辑。这两个应用程序都使用相同的Web服务。
服务器正在Windows Server 2003
中运行,服务应用使用VB.net 2005
进行部署。
测试:
Android
。Windows Mobile
的某人Chine设备。同一个webservice调用需要:
Android
时间:3分44秒。Windows Mobile
时间:0分54秒。时间是使用时钟计算的,代表时间用户。
的差异:
Windows Mobile
发送和接收数据表。Windows Mobile
按Base64序列化发送照片(每张5张30张照片)Android
发送和接收JSON
(数据表转换为JSON
)Android
按Base64序列化发送照片(每张5张30张照片)为什么时间如此不同?
在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;
}
}
答案 0 :(得分:0)
从您使用ksoap2-android的代码片段判断。该库用于SOAP Web服务。但是你说的是使用JSON的Android ..因此无法使用。您必须更改服务器以使用SOAP并继续使用ksoap2-android或您更改为Android应用程序以解析JSON与其他库..
答案 1 :(得分:0)
为什么使用数据表?我假设你正在使用Json序列化数据? 所以你得到了很多额外的数据。反序列化是一个耗时的过程。
我看到你正在使用登录方法。我已经为j2me和windows mobile实现了一些登录选项。但我总是喜欢自定义对象,响应时间也一样。