2012-07-31 46 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是在批处理的有效内容中发送的。
  • 定义您所使用的复杂的查询服务操作(但因为你没有自己的服务这可能不是一个很好的解决方案为您)。