2016-12-01 4 views
0

Я использую API REST Microsoft Outlook для синхронизации сообщений в папке с помощью skipTokens с помощью Prefer: odata.track-changes header.Outlook REST API 500 LegacyPagingToken error

После 62 успешных раундов результатов, я получаю сообщение об ошибке 500 ErrorInternalServerError с сообщением Unable to cast object of type 'LegacyPagingToken' to type 'Microsoft.Exchange.Services.OData.Model.SkipToken'

Я попытался:

  • Повторная отправка тот же запрос (https://outlook.office.com/api/v2.0/me/MailFolders/Inbox/messages/?%24skipToken=1BWUA9eXs5dN89tPsr_FOvtzINQAA0Cwk5o), что приводит к одной и той же ошибки
  • Перезапуск синхронизации, которая приводит к той же ошибке в той же точке
  • Добавление нового сообщения в папку «Входящие» и перезапуск синхронизации, что приводит к той же ошибке в s AME точка
  • Перемещение сообщения из той части синхронизации в другую папку (в случае сообщения сами были причиной проблемы), что приводит к одной и той же ошибки в той же точке

Кто-нибудь работать в этом ошибка или предложения о том, что может вызвать ее или обходные пути?

ответ

0

Похоже, что проблема была на моем конце, а синтаксический анализ skipToken с ответа @odata.nextLink. Токен в исходном вопросе недействителен - фактический skipToken, полученный обратно из API, имел -AAAA в конце. После 63 запросов, в которых шаг skipToken увеличивается, закодированная форма Base64 начиналась с использования символов, которые я использовал в regexp, не нашел. Переключение с \w regexp на правильный анализатор URL-адресов решило проблему.

+0

Вы действительно не должны пытаться проанализировать ссылку следующей страницы. Он должен быть непрозрачным для своих потребителей. Вы должны использовать ссылку следующей страницы, как есть, не пытаясь ее интерпретировать. – Yogesh

Смежные вопросы