我正在构建一个测试应用程序来获取邮件和附件。
如果我使用的请求包含IsRead=false
和HasAttachments=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
有效
使用带有orderBy(非HasAttachments
)的2个过滤器
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
答案 0 :(得分:0)
通过在浏览器中运行请求,我得到了更详细的错误
{"error":{"code":"InefficientFilter","message":"The restriction or sort order is too complex for this operation."}}
因此,似乎不允许使用某些过滤器和排序组合。
我必须解决我的问题的方法是在我的select子句中包含HasAttachments
,然后过滤返回的结果。