如何缩短Odata查询字符串

本文关键字:字符串 查询 Odata 何缩短 | 更新日期: 2023-09-27 18:27:20

我有一个使用策略编号查询api的方法。我发现查询字符串的字符限制刚刚超过2k。这是我发送查询的方法。如何确保或缩短字符串,使其永远不会超过字符限制?

 public void BuildPolicyQuery()
        {
            if (!PolicyNumbers.IsAny()) return;
            //if (PolicyNumbers == null || PolicyNumbers.Count() == 0) return;
            QueryForWebServices = "Policy?$filter=PolicyNumber eq '" + PolicyNumbers.First() + "'";
            if (PolicyNumbers.Count() == 1) return;
            foreach (var p in PolicyNumbers.Skip(1))
            {
                QueryForWebServices += " or PolicyNumber eq '" + p + "'";
            }
        }

如何缩短Odata查询字符串

如果您可以修改服务,那么您可以在策略路由上定义一个操作,并在操作负载中传递策略编号。例如:

POST /Policy/SomeNamespace.GetSubsetByPolicyNumber
{ "PolicyNumbers": [ 123, 456, ... ] }

您想要的是操作而不是函数,因为前者使用POST并获取有效负载(内容主体),而后者使用GET并在URI中使用参数。

使用ASP.NET Web API 2.2 的OData v4中的操作和函数