Should I use Base64 encoding or byte[] for returni

2019-04-23 14:06发布

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.

2条回答
虎瘦雄心在
2楼-- · 2019-04-23 14:47

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.

查看更多
ゆ 、 Hurt°
3楼-- · 2019-04-23 14:55

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:

string GetBinaryImageFromDatabase();

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:

string SaveCustomer(string customer);

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.

查看更多
登录 后发表回答