代码之家  ›  专栏  ›  技术社区  ›  Dan Friedman

使用来自Postman的httpRequest将图像上载到Azure函数

  •  0
  • Dan Friedman  · 技术社区  · 6 年前

    我很难用 HttpRequest . 我特别使用 HTT请求 因为这就是vs模板所使用的。我已经用邮递员将问题简化为一个简单的测试用例。

    功能:

    [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函数,该函数将自动返回流并在邮递员响应中显示图片。

    但是当我从邮递员那里调用它时,当它试图读取流时会抛出一个异常:

    “System.IO.InvalidDataException:缺少内容类型边界。\r\n在Microsoft.aspnetcore.http.features.formFeature.getBoundary(MediaTypeHeaderValue ContentType,Int32 lengthLimit)上\r\n在Microsoft.aspnetcore.http.features.formFeature.innerRedormAsync(CancellationToken CancellationToken)上\r\n在Microsoft.aspnetcore.http.features.formFeatureure.readform()\r\n位于Microsoft.aspnetcore.http.internal.defaulthttprequest.get_form()\r\n位于[我的代码]“

    如果我把这个换成 HttpRequestMessage 像以前的Azure函数模板一样使用 req.Content.ReadAsStreamAsync() 它就像一个魅力。

    但是由于新模板使用 HTT请求 ,这个问题的重点是 HTT请求 它的正确使用。那我怎么用呢 HTT请求 为了让这个工作?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jerry Liu Phantom    6 年前
    enter image description here

    content-type: multipart/form-data; boundary=--------------------------970956809380964389175281
    

    Content-Type: multipart/form-data