我很难使用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处位于Microsoft.AspNetCore.Http.Features.FormFeature.GetBoundary(MediaTypeHeaderValue contentType,Int32 lengthLimit)\ r \ n。在Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm()\ r \ n(在Microsoft.AspNetCore.Http.Internal.DefaultHttpRequest.get_Form()\ r \ n在)上的Features.FormFeature.InnerReadFormAsync(CancellationToken cancelleToken)\ r \ n [我的代码]“
现在,如果我将其切换为像旧的Azure Function模板一样使用HttpRequestMessage
并使用req.Content.ReadAsStreamAsync()
,它就像一个魅力。
但是由于新模板使用HttpRequest
,所以这个问题集中在HttpRequest
的使用及其正确使用上。那么如何使用HttpRequest
使它正常工作?