【发布时间】:2018-08-05 11:38:42
【问题描述】:
我很难使用HttpRequest 将图像上传到 Azure Functions。我专门使用HttpRequest,因为这是 VS 模板使用的。我已经使用 Postman 将问题简化为一个简单的测试用例。
功能:
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post")]HttpRequest req)
{
return new CreatedResult("", req.Form.Files[0].OpenReadStream());
}
邮递员:
Method: POST
URL: [Function URL]
Headers:
Content-Type: multipart/form-data
Body: binary with image selected
所以应该发生的是,我选择了要上传的文件,单击“发送”将其上传到 Azure 函数,它应该会自动返回流并在 Postman 响应中显示图片。
但是当我从 Postman 调用它时,它会在尝试读取流时抛出异常:
“System.IO.InvalidDataException:缺少内容类型边界。\r\n 在 Microsoft.AspNetCore.Http.Features.FormFeature.GetBoundary(MediaTypeHeaderValue contentType, Int32 lengthLimit)\r\n 在 Microsoft.AspNetCore.Http。 Features.FormFeature.InnerReadFormAsync(CancellationToken cancelToken)\r\n 在 Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm()\r\n 在 Microsoft.AspNetCore.Http.Internal.DefaultHttpRequest.get_Form()\r\n 在[我的代码]"
现在,如果我将其切换为使用 HttpRequestMessage 像旧的 Azure Function 模板并使用 req.Content.ReadAsStreamAsync(),它就像一个魅力。
但是由于新模板使用HttpRequest,所以这个问题主要关注HttpRequest的使用及其正确使用。那么如何使用HttpRequest 来让它工作呢?
【问题讨论】:
标签: azure asp.net-core azure-functions