簡體   English   中英

如何縮短Odata查詢字符串?

[英]How to shorten Odata query string?

我有一種使用策略號查詢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 + "'";
            }
        }

如果可以修改服務,則可以在策略路由上定義一個操作,並在操作有效負載中傳遞策略編號。 例如:

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

您需要一個操作而不是一個函數,因為前者使用POST並采用有效負載(內容主體),而后者則使用GET和URI中的參數。

使用ASP.NET Web API 2.2的OData v4中的操作和功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM