В настоящее время я создаю службу ASP.NET MVC WebAPI, для которой я хочу, чтобы небольшая часть двоичных данных отправлялась в цепочке. Метод в этом приложении вызывается через POST, а тело содержит фактические данные. Запрос используется для описания некоторых свойств данных в теле (например, как он кодируется).Принятие параметра байтового массива в API MVC как Base64
Интересно, можно ли принять параметр байтового массива в виде строки в кодировке base64 в строке запроса.
В качестве примера у меня есть этот код:
using System.Text;
using System.Web.Http;
namespace WebApplication2.Controllers
{
public class ByteArrayController : ApiController
{
public string Get([FromUri] byte[] myarray)
{
var strbResult = new StringBuilder();
foreach (byte byteValue in myarray)
{
strbResult.AppendLine(byteValue.ToString() + " ");
}
return strbResult.ToString();
}
}
}
Затем я хочу, чтобы иметь возможность отправить MyArray параметр следующим образом:
http://.../api/ByteArray/Get?myarray=MTIzNA%3D%3D
Пожалуйста, не возражаете именования, это просто простой пример.
Теперь я знаю, что массивы могут быть отправлены с использованием того же параметра несколько раз в строке запроса (например, MyArray = 1 & MyArray = 2 & MyArray = 3), но я хотел бы принять его как в кодировке Base64.
Я искал атрибут, чтобы указать, как декодировать массив, но не смог найти такой атрибут.
Конечно, я могу изменить код, чтобы принять строку, а затем преобразовать ее в массив байтов, но я предпочитаю делать это прозрачно, если это возможно.