0

当我在批量查询中搜索 Office 365 上的电子邮件时,我收到未终止的字符串文字错误。仅当我在主题搜索查询中有 # 字符时才会发生这种情况。

像这样的论坛讨论(https://issues.oasis-open.org/browse/ODATA-1101)建议我对 # 符号进行百分比编码,但它给出了同样的错误。

当我将以下请求发布到批处理端点时(https://graph.microsoft.com/v1.0/$batch

{
    "requests": [{
        "id": 1,
        "method": "GET",
        "url": "/users/somemailbox@mytenant.onmicrosoft.com/messages?$select=id,internetMessageId,toRecipients,ccRecipients,bccRecipients,subject,isRead,sender,receivedDateTime&$top=500&$search=\"received>=2019-06-19 AND (subject:\\\"PO# 123\\\" AND from:email@domain.com)\""
    }]
}

我收到这个错误

{
  "responses": [
    {
      "id": "1",
      "status": 400,
      "body": {
        "error": {
          "code": "BadRequest",
          "message": "There is an unterminated string literal at position 39 in '\"received>=2019-06-19 AND (subject:\\\"PO'.",
          "innerError": {
            "request-id": "801078a5-d3c6-4b93-a152-6653a3d8ca44",
            "date": "2019-07-22T06:29:16"
          }
        }
      }
    }
  ]
}

你们能帮我解决我的搜索查询吗?

谢谢,阿希什

4

1 回答 1

0

#字符用于分隔URL 中的片段,这些片段旨在表示客户端状态。浏览器通常不会发送它#或任何跟随它的东西,如果它被意外发送,服务器通常会忽略它。

您的问题很可能是编码问题 - 取决于您如何对查询字符串#进行编码,而实际上您希望将其编码为%23.

于 2019-07-22T15:41:13.157 回答