0

我正在构建一个测试应用程序来获取邮件和附件。

如果我使用包含 and 过滤器的请求,IsRead=falseHasAttachments=true可以工作

https://outlook.office365.com/api/v1.0/me/messages/?$select=Sender,Subject&$filter=IsRead%20eq%20false%20AND%20HasAttachments%20eq%20true&$top=50

如果我使用请求,我添加OrderBy并删除了第二个过滤器HasAttachements它就可以工作

https://outlook.office365.com/api/v1.0/me/messages/?$select=Sender,Subject&$filter=IsRead%20eq%20false&$orderby=Subject%20desc&$top=50

如果我使用请求同时包含过滤器和 orderBy

https://outlook.office365.com/api/v1.0/me/messages/?$select=Sender,Subject&$filter=IsRead%20eq%20false%20AND%20HasAttachments%20eq%20true&$orderby=Subject%20desc&$top=50

它因以下错误 而中断request.Result = {StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1

谁能从我提出的请求中看到我做错了什么?

提前致谢


通过测试不同的场景,问题似乎与过滤器有关HasAttachments

只需HasAttachments过滤orderBy休息_ https://outlook.office365.com/api/v1.0/me/messages/?$select=Sender,Subject&$filter=HasAttachments%20eq%20true&$orderby=Subject%20desc&$top=50

只需HasAttachments过滤没有orderBy作品 https://outlook.office365.com/api/v1.0/me/messages/?$select=Sender,Subject&$filter=HasAttachments%20eq%20true&$top=50 即可

使用 2 个带有 orderBy (NOT HasAttachments)的过滤器有效 https://outlook.office365.com/api/v1.0/me/messages/?$select=Sender,Subject&$filter=IsRead%20eq%20false%20AND%20Subject%20eq%20%27Test%27&$orderby=Subject%20desc&$top=50

4

1 回答 1

0

通过在浏览器中运行请求,我得到了一个更详细的错误

{"error":{"code":"InefficientFilter","message":"The restriction or sort order is too complex for this operation."}}

因此,似乎不允许使用某些过滤器的组合并一起排序。

我必须解决我的问题的方法是包含HasAttachments在我的选择子句中,然后过滤返回的结果。

于 2017-07-25T08:13:29.103 回答