我有一个使用策略号查询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 + "'";
}
}
答案 0 :(得分:3)
如果您可以修改服务,则可以在策略路由上定义操作并在操作负载中传递策略编号。例如:
POST /Policy/SomeNamespace.GetSubsetByPolicyNumber
{ "PolicyNumbers": [ 123, 456, ... ] }
您需要一个操作而不是一个函数,因为前者使用POST并使用有效负载(内容主体),而后者则使用GET和URI中的参数。