在ASP .NET Web API中发送字节数组

时间:2019-05-07 21:58:52

标签: asp.net-web-api

我正在创建一个Web API,以允许通过POST下载文件。不需要UI。我正在以JSON的形式发送字节数组和文件名,如下所示。

{
  "FileName": "xxxyyyzzz.pdf",
  "FileType": "Pricing",
  "FileID": 12457,
  "ContentInByteArray": 
  "JVBERi0xLjMNCiXi48QoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==",
  "ExceptionMessage": ""
}

实际上将文件内容转换为字节数组并设置为"ContentInByteArray"。这是一个好方法。还是我需要即兴演奏。

请提出建议。

1 个答案:

答案 0 :(得分:0)

当您需要发布文件或图像内容或者可能是令牌内容并通过API处理它们时,可以使用send byte[]数组。

 var request = new SomePostRequest
        {
            Id = 1,
            Content = File.ReadAllBytes(filename); // read content file to byte[]
        };

        jsonSerializer.Serialize(bson, request);

        var client = new HttpClient
        {
            BaseAddress = new Uri("http://www.server.com")
        };

        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/bson"));

        var byteArrayContent = new ByteArrayContent(stream.ToArray());
        byteArrayContent.Headers.ContentType = new MediaTypeHeaderValue("application/bson");

        var result = await client.PostAsync(
                "api/upload", byteArrayContent);