I have a simple question. Should I return a byte-array or simply base64 encode my binary data, when exposing it through a web service in .NET? Is there any pros/cons with either method, which is mostly supported etc.
相关问题
- Views base64 encoded blob in HTML with PHP
- Generic Generics in Managed C++
- How to Debug/Register a Permanent WMI Event Which
- 'System.Threading.ThreadAbortException' in
- Bulk update SQL Server C#
One consideration is that a Base64 encoded string enables you to use the "Test Form" to help debug any issues, etc. The Byte array is a complex type and therefore the test form will not work.
Use byte array. Over a SOAP protocol this byte array will automatically be serialized using base64 encoding. Your web service will be also more descriptive if you use a byte array. Imagine someone who wants to consume your web service and looking at a method whose signature looks like this:
He might wonder why does this method returns a string and what am I going to do with this string, while if it returns a byte array it is much more clear.
I've seen web service method that look like this:
Guess what the
customer
and the return types were: they were some proprietary XML. There's absolutely no sense of using SOAP if people reinvent protocols over it.