2012-07-31 75 views
0

我們稱之爲WCF SVCS(不是我們),我們使用的是獲得用於搜索產品數據庫。用的OData PARAMS在POST查詢WCF服務,而不是GET

?例如: http://foo.com/SearchProducts.svc $跳過= 0 $取= $ 10 includeTotalCount =真

我們傳遞的OData參數頁面SearchProducts SVC的結果。 svc已被更改爲POST,因爲我們的過濾器「skus」有時很龐大(skus),導致GET因爲uri太大而中斷。我們認爲最簡單的解決方案就是改變對帖子的要求,但現在Odata params似乎不被使用。

難道這些PARAMS需要做一個POST時,以不同的方式來發送?

回答

1

OData兼容的服務不支持POST謂詞進行查詢(除非你使用POST隧道,但隨後你會反正被擊中URL限制)。所以我想知道它是如何爲你工作的。

的URL大小限制,可以用幾種方法來克服:

  • 簡化查詢表達式。顯然這隻能走得這麼遠,但它通常是最好的解決方案,因爲它也可能加快查詢的執行速度。
  • 改爲使用批處理。您可以在批處理內發送GET請求。在這種情況下,URL的長度不是問題,因爲查詢URL是在批處理的有效內容中發送的。
  • 定義您所使用的複雜的查詢服務操作(但因爲你沒有自己的服務這可能不是一個很好的解決方案爲您)。