Ho una domanda semplice. Devo restituire un array di byte o semplicemente base64 codificare i miei dati binari, quando lo espongo attraverso un servizio web in .NET? C'è qualche pro/contro con entrambi i metodi, che è per lo più supportato ecc.Devo usare la codifica Base64 o il byte [] per restituire dati binari nel servizio web .NET
risposta
Utilizzare la matrice di byte. Su un protocollo SOAP questo array di byte verrà automaticamente serializzato usando la codifica base64. Il tuo servizio web sarà anche più descrittivo se usi un array di byte. Immaginate qualcuno che vuole consumare il servizio web e guardando un metodo la cui firma appare così:
string GetBinaryImageFromDatabase();
Egli potrebbe chiedersi perché questo metodo restituisce una stringa e che cosa sto andando a che fare con questa stringa, mentre se restituisce un array di byte è molto più chiaro.
ho visto metodo di servizio web che assomigliano a questo:
string SaveCustomer(string customer);
Indovinate un po 'le e le tipologie di ritorno customer
erano: erano un po' XML proprietario. Non ha assolutamente senso utilizzare SOAP se le persone reinventano i protocolli su di esso.
Una considerazione è che una stringa codificata Base64 consente di utilizzare il "Modulo di test" per aiutare a risolvere eventuali problemi, ecc. La matrice Byte è un tipo complesso e quindi il modulo di test non funzionerà.
Ma il contenuto della stringa codificata sarebbe ancora un array di byte. Se ho bisogno di eseguire il debug, potrei sempre chiamare Convert.ToBase64String (byte [] inArray). – Siewers
Sì, il mio punto è puramente che per chiamare/testare il metodo è necessario costruire un cablaggio di prova che passa/riceve un array di byte. Se si utilizza una stringa base64, è possibile chiamare il proprio webmethod manualmente senza scrivere un cablaggio di test. –
- 1. Qual è il modo migliore per restituire grossi pezzi di dati binari da un servizio web?
- 2. Converti il byte [] nella stringa Base64 per l'URI dei dati
- 3. Devo usare encodeURI o encodeURIComponent per gli URL di codifica?
- 4. Per restituire un set di dati in un servizio Web o no?
- 5. Devo restituire null o generare un'eccezione?
- 6. Come inviare dati formali multipart binari come base64?
- 7. Devo restituire List o ArrayList
- 8. servizio web deve restituire JSON
- 9. Devo usare JSON o AJAX per i dati di risposta?
- 10. Devo usare NSUserDefaults o un plist per memorizzare i dati?
- 11. Devo usare PendingIntent.getService() o getBroadcast con AlarmManager?
- 12. Devo usare la forcella o i fili?
- 13. Devo usare Pylon's Paste per ospitare il mio sito Web Pylons? O posso usare Apache?
- 14. Problema "MyType": Devo usare tipi astratti (o generici) in Scala per restituire la classe effettiva?
- 15. Devo usare l'inizializzatore statico o la super classe
- 16. Devo usare typeclass o no?
- 17. Codifica Base64 in Java/Groovy
- 18. Devo usare em o px?
- 19. Vuoi memorizzare dati binari nel database o nel file system?
- 20. Devo usare il prototipo o no?
- 21. Codifica base64 in modello Freemarker
- 22. Devo usare System.out.println() o qualcos'altro?
- 23. Devo usare me stesso o questo in servizio?
- 24. Converti i dati binari in base64 con javascript
- 25. Devo usare immagini spaziali durante la codifica di email HTML?
- 26. Qual è lo scopo della codifica esadecimale per i dati binari?
- 27. socket.io streaming dati binari
- 28. Uri in linea SVG dati uri senza codifica base64
- 29. Rileva codifica base64
- 30. Devo usare la dichiarazione di codifica in Python3?
Punti interessanti. Discuterò con gli altri membri della mia squadra, per vedere se hanno obiezioni :) – Siewers