Как отправить байтовый массив в c # ApiController - PullRequest
0 голосов
/ 27 ноября 2018

Может кто-нибудь сказать мне, как я могу проверить эту функцию:

[RoutePrefix("service")]
public class TestControler : ApiController
{
    [Route("function-route")]
    [HttpPost]
    public HttpResponseMessage Testfunction(TestData t_testData )
    {
        ...
        HttpResponseMessage httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK);
        return httpResponseMessage;
    }
}

public class TestData
{
    public byte[] PreviewImage { get; set; }
    public byte[] FileAsByteArray { get; set; }
}

У нас включен Swagger через:

public void Configuration(IAppBuilder appBuilder)
{
    // Configure Web API for self-host. 
    HttpConfiguration config = new HttpConfiguration();

    //Using AttributeRoutes
    config.MapHttpAttributeRoutes();

    //Swagger
    config.EnableSwagger(c =>{
        c.SingleApiVersion("v1", "My Test API");
    }).EnableSwaggerUi();

    appBuilder.UseWebApi(config);
}

Я действительно не знаю, как проверить этот API черезчванство, или почтальон, или локон.Проблема в байте [], как это отправить?Кто-нибудь, как проверить эти виды API?

Или, если есть другой способ отправить любой файл (PDF, TXT, DOCX, ...) в сочетании с любым изображением (JPG, PNG, ...) без байта [], я был бы рад услышать.

1 Ответ

0 голосов
/ 28 ноября 2018

Я бы base64 закодировал байтовые массивы и изменил бы свойства вашей модели с байтового массива byte[] на string.Это должно позволить вам отправить эти строки на ваш контроллер, где вы сможете преобразовать их обратно в байтовые массивы.

Для кодирования в виде строки base64 используйте string byteString = Convert.ToBase64String(byteArray) и выполните обратное преобразование, используя byte[] byteArray = Convert.FromBase64String(byteString).

Чтобы проверить использование почтальона, вы можете использовать функции javascript atob() и btoa() для преобразования байтового массива в строку, закодированную в base 64, и наоборот.

...