小编tor*_*naa的帖子

ASP .NET Web API两次读取输入流

我正在使用ASP .NET Web API,并且我有一个控制器,其代码与此类似:

[Route("UpdateData")]
[HttpPost]
public HttpResponseMessage UpdateData([FromBody]RequestClasses.UpdataData data)
{
    string json;
    if (HttpContext.Current.Request.InputStream.Length > 0)
    {
        HttpContext.Current.Request.InputStream.Position = 0;
        using (var inputStream = new StreamReader(HttpContext.Current.Request.InputStream))
        {
            json = inputStream.ReadToEnd();
        }
    }

    // Dencrypt json

return Request.CreateResponse(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)

作为输入参数,我具有“ [FromBody] RequestClasses.UpdataData数据”。我这样做是为了能够显示帮助页面(使用Microsoft.AspNet.WebApi.HelpPage)。

用这种方法接收的数据对象已加密,我需要对其解密。

我的问题是我无法调用HttpContext.Current.Request.InputStream,因为“ [FromBody] RequestClasses.UpdataData数据”已处置我的InputStream。

有解决这个问题的好主意吗?因为我仍然需要帮助页面来显示用于调用该方法的参数。

c# asp.net asp.net-web-api

5
推荐指数
1
解决办法
2436
查看次数

标签 统计

asp.net ×1

asp.net-web-api ×1

c# ×1