【发布时间】:2019-11-08 15:33:26
【问题描述】:
我需要通过属性读取通过 post/put 发送到我的 Web API 的内容以执行一些额外的验证,但内容值始终为空,即使我可以看到 context-size 设置了一个值,即 2067 和content-type 设置为 application/json
我尝试了不同的方法,但似乎都不起作用:
- 读取异步
- ReadAsByteArrayAsync
- ReadAsStringAsync
- 等等……
我的最后一次尝试如下:
public async override void OnActionExecuting(HttpActionContext actionContext)
{
using (MemoryStream ms = new MemoryStream())
{
await actionContext.Request.Content.CopyToAsync(ms)
.ConfigureAwait(false);
var str = System.Text.UTF8Encoding.
UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Length);
}
}
我尝试使用 CopyTo 的原因是我注意到,当我调用上述一些函数时,即使它们返回一个空字符串,我也可以在谷歌搜索后进行一次调用,我相信这是通过设计。
底线是我需要访问请求的正文/内容,以便检查发送的 json。
谢谢。
【问题讨论】:
标签: c# asp.net-web-api