0

我们调用 wcf svcs(不是我们的)并且我们使用gets 来搜索产品数据库。

示例: http: //foo.com/SearchProducts.svc ?$skip=0$take=10$includeTotalCount=true

我们传递 Odata 参数来分页 SearchProducts svc 的结果。svc 已更改为 POST,因为我们的过滤器“skus”之一有时很大(数百个 skus),这会导致 GET 中断,因为 uri 太大。我们认为最简单的解决方案是将调用更改为帖子,但现在似乎没有使用 Odata 参数。

在进行 POST 时,这些参数是否需要以不同的方式发送?

4

1 回答 1

1

兼容的 OData 服务不支持查询的 POST 动词(除非您使用 POST 隧道,但无论如何您都会达到 URL 限制)。所以我想知道它对你有什么作用。

可以使用以下几种方法克服 URL 大小限制:

  • 简化查询表达式。显然这只能到此为止,但它通常是最好的解决方案,因为它也可能会加快查询执行速度。
  • 请改用批处理。您可以在批处理中发送 GET 请求。在这种情况下,URL 的长度不是问题,因为查询 URL 是在批处理的负载中发送的。
  • 为您正在使用的复杂查询定义服务操作(但由于您不拥有该服务,这对您来说可能不是一个好的解决方案)。
于 2012-07-31T18:10:03.970 回答