gpt4 book ai didi

azure - 使用 Postman 中的 HttpRequest 将图像上传到 Azure Functions

转载 作者:行者123 更新时间:2023-12-03 01:42:30 25 4
gpt4 key购买 nike

我很难使用 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并上传图片。(无需设置标题)

enter image description here

在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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com