跳到主要内容

服务端获取前端请求数据说明

服务端可能需要在脚本中或者微服务中获取前端请求数据,请求参数需要通过不同方式来获取。下面是不同位置获取请求参数一览。

获取请求的 URL 参数​

从上下文中获取请求 Query 参数,结果为一个字符串字典:

var query = ChameleonContext.Current.GetQuery();

获取请求的 Body 请求体数据​

返回请求体字符串形式​

var body = ChameleonContext.Current.GetBody();

获取请求体实体对象形式​

内部做了 JSON 反序列化:

var body = ChameleonContext.Current.GetBody<T>();

获取请求体实体对象形式(带尝试判断)​

内部做了 JSON 反序列化,带尝试判断:

var success = ChameleonContext.Current.TryGetBody<T>(out T result);

C# 脚本中获取 Body 请求体数据​

C# 脚本中获取请求体,为了方便直接获取各个属性,底层对 ChameleonContext.Current.GetBody() 进一步封装,将封装后的结果传递在了脚本上下文的 Request 属性中。

使用示例​

public class ChameleonCSharpScript
{
public object Execute(ComponentContext context, IChameleonDbContext dbContext, ILogger logger)
{
// 通过 context.Request 获取请求体数据
var requestData = context.Request;

// 获取具体属性值
var field1 = requestData.field1;
var field2 = requestData.field2;

return new { success = true };
}
}

方法汇总​

方法说明
ChameleonContext.Current.GetQuery()获取 URL Query 参数,返回字符串字典
ChameleonContext.Current.GetBody()获取请求体字符串形式
ChameleonContext.Current.GetBody<T>()获取请求体实体对象形式
ChameleonContext.Current.TryGetBody<T>(out T result)获取请求体实体对象形式,带尝试判断
context.RequestC# 脚本中获取请求体数据的快捷方式