tor*_*naa 5 c# asp.net 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。
有解决这个问题的好主意吗?因为我仍然需要帮助页面来显示用于调用该方法的参数。
根据设计,ASP.NET Web API 只能读取有效负载输入流一次。因此,如果参数绑定器读取它,则它不可用。人们就是这样在评论中告诉您使用无参数方法,并自己读取有效负载。
但是,您希望有参数以便在帮助页面中查看它们。有一个解决方案:在前面的步骤中对请求进行解密。为此,您可以使用消息处理程序。请参阅:加密 MVC4 WebApi 中的请求/响应
| 归档时间: |
|
| 查看次数: |
2436 次 |
| 最近记录: |