- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难使用 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());
}
postman :
Method: POST
URL: [Function URL]
Headers:
Content-Type: multipart/form-data
Body: binary with image selected
所以应该发生的是,我选择要上传的文件,单击“发送”将其上传到 Azure 函数,该函数应自动返回流并在 Postman 响应中显示图片。
但是当我从 Postman 调用它时,它尝试读取流时会抛出异常:
"System.IO.InvalidDataException: Missing content-type boundary.\r\n at Microsoft.AspNetCore.Http.Features.FormFeature.GetBoundary(MediaTypeHeaderValue contentType, Int32 lengthLimit)\r\n at Microsoft.AspNetCore.Http.Features.FormFeature.InnerReadFormAsync(CancellationToken cancellationToken)\r\n at Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm()\r\n at Microsoft.AspNetCore.Http.Internal.DefaultHttpRequest.get_Form()\r\n at [My code]"
现在,如果我将其切换为像旧的 Azure Function 模板一样使用 HttpRequestMessage
并使用 req.Content.ReadAsStreamAsync()
,它就像一个魅力。
但是由于新模板使用了HttpRequest
,所以本题的重点是HttpRequest
的使用及其正确使用。那么我怎样才能使用HttpRequest
来让它工作呢?
最佳答案
Postman提供了上传表单数据的方法,选择类型为File并上传图片。(无需设置标题)
在Fiddler中看到这个请求头,Postman自动设置边界。
content-type: multipart/form-data; boundary=--------------------------970956809380964389175281
如果我们上传带有内容类型 header 的二进制文件,则 header 为 Content-Type: multipart/form-data
,因此我们会遇到缺少边界的错误。
关于azure - 使用 Postman 中的 HttpRequest 将图像上传到 Azure Functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51644301/
我是一名优秀的程序员,十分优秀!