我正在创建一个Web API,以允许通过POST下载文件。不需要UI。我正在以JSON的形式发送字节数组和文件名,如下所示。
{
"FileName": "xxxyyyzzz.pdf",
"FileType": "Pricing",
"FileID": 12457,
"ContentInByteArray":
"JVBERi0xLjMNCiXi48QoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==",
"ExceptionMessage": ""
}
实际上将文件内容转换为字节数组并设置为"ContentInByteArray"
。这是一个好方法。还是我需要即兴演奏。
请提出建议。
答案 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);