.net core在服务器端获取api传递的参数过程
- 作者: L一世受宠
- 来源: 51数据库
- 2021-09-03
这篇文章主要介绍了.net core在服务器端获取api传递的参数过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在 actionfilterattribute 的onactionexecutionasync 中使用如下代码从流中读取用户参数
//从文件流中读取传递测参数
using (var ms = new memorystream())
{
context.httpcontext.request.body.seek(0, 0);//将读取指针迻到开始位置
context.httpcontext.request.body.copyto(ms);
var b = ms.toarray();
var postparamsstring = encoding.utf8.getstring(b);
}
虽然以前就知道是从流中读取,但是.net core的比较难找,找了将近两个小时才找到从流中读取参数的方法,关键是这句:context.httpcontext.request.body.seek(0, 0);不然读取的内容为空
完整代码
public class signvalidateattribute : actionfilterattribute
{
#region
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <param name="next"></param>
/// <returns></returns>
public async override task onactionexecutionasync(actionexecutingcontext context, actionexecutiondelegate next)
{
//从文件流中读取传递测参数
using (var ms = new memorystream())
{
context.httpcontext.request.body.seek(0, 0);
context.httpcontext.request.body.copyto(ms);
var b = ms.toarray();
var postparamsstring = encoding.utf8.getstring(b);
await next();
}
}
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <param name="next"></param>
/// <returns></returns>
public override task onresultexecutionasync(resultexecutingcontext context, resultexecutiondelegate next)
{
//string datajson = getcontextjson(context.);
return base.onresultexecutionasync(context, next);
}
#endregion
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
