此答案说明了如何在C#中通过HTTP POST发送多部分表单数据:
https://stackoverflow.com/a/19664927/10779
代码引用答案:
private async Task<System.IO.Stream> Upload(string actionUrl, string paramString, Stream paramFileStream, byte [] paramFileBytes)
{
HttpContent stringContent = new StringContent(paramString);
HttpContent fileStreamContent = new StreamContent(paramFileStream);
HttpContent bytesContent = new ByteArrayContent(paramFileBytes);
using (var client = new HttpClient())
using (var formData = new MultipartFormDataContent())
{
formData.Add(stringContent, "param1", "param1");
formData.Add(fileStreamContent, "file1", "file1");
formData.Add(bytesContent, "file2", "file2");
var response = await client.PostAsync(actionUrl, formData);
if (!response.IsSuccessStatusCode)
{
return null;
}
return await response.Content.ReadAsStreamAsync();
}
}
您如何在Azure函数中正确接收这样的POST请求?
似乎HttpRequest
Form属性(req.Form["file1"]
)总是为您提供一个字符串,而不是访问流。如何正确获取“ file1”或“ file2”键的原始byte []数据?
默认模板使用HttpRequest
参数创建Azure函数。事实证明,您可以将其更改为HttpRequestMessage
参数,然后用于req.Content.ReadAsMultipartAsync()
读取单个的多形式零件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句