Getting hold of raw POST data when using [FromBody]

后端 未结 3 1054
情话喂你
情话喂你 2020-12-20 16:09

I have a controller running on ASP.NET Core 1.0 RC2 and I\'d like to dump the raw POST data out to telemetry as ApplicationInsights doesn\'t do this for you. My code looks l

相关标签:
3条回答
  • 2020-12-20 16:33

    The most simple way I found to solve this issue is to use jObject as the Model. And send the request with Content-Type: application/json at the header.

    Use something like NewtonSoft's json dll this:

    [HttpPost]
    public IActionResult Post([FromBody] jObject RequestData)
    {
        string str = RequestData["key"];
        return Ok();
    }
    

    This worked for me

    0 讨论(0)
  • 2020-12-20 16:41

    You need to enable buffering the request body: services.Configure<FormOptions>(options => options.BufferBody = true); https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http/Features/FormOptions.cs#L20

    0 讨论(0)
  • 2020-12-20 16:42

    The request stream has already been read, so what you can do here is EnableRewind on the Request

    See solution here for reading json from body. Same should apply to your issue.

    0 讨论(0)
提交回复
热议问题