Получение 504 тайм-аута шлюза при вызове Microsoft Graph Calendar в блоках - PullRequest
0 голосов
/ 09 апреля 2019

Когда я использую Почтальон, он работает отлично.Однако, если я использую те же самые заголовки в PHP, я получаю ошибку 504 Gateway Time-out.

Вот как я называю запрос:

$headers = [
    'Authorization' => 'Bearer ' . $this->getAccessToken(),
    'Cache-Control' => 'private',
    'Transfer-Encoding' => 'chunked',
    'Content-Type' => 'application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8',
    'Content-Encoding' => 'gzip',
    'Vary' => 'Accept-Encoding',
    'x-ms-ags-diagnostic' => '{"ServerInfo":{"DataCenter":"West Europe","Slice":"SliceC","Ring":"5","ScaleUnit":"003","RoleInstance":"AGSFE_IN_12","ADSiteName":"WEU"}}',
    'Preference-Applied' => 'odata.track-changes',
    'OData-Version' => '4.0'
];

$request = $this->guzzle->get('v1.0/me/calendarview/delta?startdatetime=2019-12-12T00:00:00Z&enddatetime=2019-12-13T00:00:00Z', ['headers' => $headers]);
print_r($request->getBody());

Как только я изменяю Transfer-Encoding на chunked (точно так же, как в Почтальоне) Я получаю ошибку шлюза.Если я не использую его, я не получаю события календаря.

1 Ответ

0 голосов
/ 11 апреля 2019

Я думаю, что это как-то связано с odata.streaming=true;IEEE754Compatible=false; в заголовке типа контента. С помощью этого заголовка вы сообщаете Microsoft, что хотите оставить соединение открытым и получать дополнительные изменения. (Что я даже не знал, что они поддержали.)

Согласно документации отправлять эти дополнительные заголовки не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...