Tengo una pregunta simple. ¿Debo devolver una matriz de bytes o simplemente base64 codificar mis datos binarios, al exponerlos a través de un servicio web en .NET? ¿Hay algún pros/contra con cualquier método, que es principalmente compatible?Debo usar codificación Base64 o byte [] para devolver datos binarios en el servicio web .NET
Respuesta
Usar matriz de bytes. En un protocolo SOAP, esta matriz de bytes se serializará automáticamente utilizando la codificación base64. Su servicio web también será más descriptivo si usa una matriz de bytes. Imagínese una persona que quiere consumir su servicio web y mirando a un método cuya firma se ve así:
string GetBinaryImageFromDatabase();
Él podría preguntarse por qué este método devuelve una cadena y lo voy a hacer con esta cadena, mientras que si devuelve una matriz de bytes, es mucho más claro.
que he visto método de servicio Web que se parecen a esto:
string SaveCustomer(string customer);
adivinar lo que el y los tipos de retorno customer
eran: eran algunos XML patentada. No hay absolutamente ningún sentido de usar SOAP si las personas reinventan protocolos sobre él.
Una consideración es que una cadena codificada en Base64 le permite usar el "Formulario de prueba" para ayudar a depurar cualquier problema, etc. La matriz de bytes es un tipo complejo y, por lo tanto, la forma de prueba no funcionará.
Pero el contenido de la cadena codificada aún sería una matriz de bytes. Si necesito depurar, siempre puedo llamar a Convert.ToBase64String (byte [] en Array). – Siewers
Sí, mi punto es que para llamar/probar su método necesitará construir un arnés de prueba que pase/reciba una matriz de bytes. Si usa una cadena base64, puede llamar a su webmethod manualmente sin escribir un arnés de prueba. –
- 1. ¿Debo usar byte o int?
- 2. ¿Cuál es la mejor manera de devolver grandes cantidades de datos binarios de un servicio web?
- 3. Para archivos binarios, ¿debo usar bfiles o bigfiles?
- 4. Devolver datos XML de un servicio web
- 5. ¿Transfiriendo datos binarios a través de un servicio web SOAP?
- 6. Convierta byte [] a cadena Base64 para URI de datos
- 7. ¿Debo devolver nulo o lanzar una excepción?
- 8. codificación base64 en MySQL
- 9. ¿Debo devolver un conjunto de datos fuertemente tipado de un servicio web?
- 10. Codificación Base64 en Java/Groovy
- 11. ¿Debo usar GridFS o datos binarios para almacenar y recuperar imágenes de MongoDB?
- 12. ¿Cuál es el propósito de la codificación hexadecimal para datos binarios?
- 13. codificación base64 que no usa caracteres "+/=" (más o iguales)?
- 14. ¿Debo usar JSON o AJAX para los datos de respuesta?
- 15. ¿Cómo enviar datos de formularios multiparte binarios como base64?
- 16. Cómo devolver JSON desde el servicio web
- 17. base64 codificación cadenas unicode en python 2.7
- 18. ¿Debo anular el servicio() o doPost()?
- 19. ¿Puede un servicio web devolver una transmisión?
- 20. ¿Qué codificación debo usar para un HTTP PUT?
- 21. Imagen de codificación Base64
- 22. Detectar codificación base64
- 23. Debo devolver List o ArrayList
- 24. ¿Detecta codificación base64 en PHP?
- 25. ¿Qué elegir? Servicio web ASMX o WCF en .net 3.5?
- 26. WCF Servicio Web o API
- 27. ¿Cómo puedo usar SqlBulkCopy con datos binarios (byte []) en una DataTable?
- 28. ¿Cómo puedo publicar datos binarios html multipart en una codificación basada en caracteres?
- 29. Cómo leer archivos binarios byte por byte en Node.js
- 30. ¿Debo usar EventArgs o un tipo de datos simple?
Puntos interesantes. Discutiré esto con los otros miembros de mi equipo, para ver si tienen alguna objeción :) – Siewers