Cita:
Empezado por mamcx
La razon es que ese es el medio mas usado para transmitir informacion binaria por http, y es un estándar en eso desde hace rato:
https://es.wikipedia.org/wiki/Base64
Ademas, estoy casi seguro (porque no se como seran tus datos ) que debe ser mas pesado pasar por cada integer que en base64 (u otro encoding especializado en binarios), y es mas "natural", osea, un valor=un binario.
Ahora si asi te da ok. Puede que con compresion salga bien...
|
Hola, buenas noches, acabo de hacer el cambio para comparar el asunto, no sólo desde el tema de compatibilidad, sino también para ver cual de los 2 metodos me sirve más en cuanto a rendimiento y transmisión de dichos datos... bueno, como bien indicabas me he decidido por utilizar Base64, pues no consume tanto performance del server despues de todo, es más comprimido y además es más utilizado... acá pongo el código del server en Base64, por si a alguien más le sirve.
De hecho Embarcadero recomienda usar el método anterior (TDBXJSONTools.JSONToStream) únicamente en llamadas asincronas y si el flujo de información no es muy alto.
Código Delphi
[-]function TServerMethods.GetFileBase64: String;
var
vStream: TStream;
vStringStream: TStringStream;
vBase64: TBase64Encoding;
begin
vStream := TStream.Create;
vStringStream := TStringStream.Create;
try
vStream := GetFileInterno;
vBase64 := TBase64Encoding.Create;
vBase64.Encode(vStream, vStringStream);
Result := vStringStream.DataString;
finally
vStream.Free;
vStringStream.Free;
vBase64.Free;
end;
end;