Поделиться через


Использование дополнительных HTTP-команд при наличии ограничений для клиента

В некоторых случаях приложениям не удается совершать HTTP-запросы с помощью команд, отличных от GET и POST. Например, некоторые прокси-серверы, брандмауэры и другие компоненты могут быть настроены их операторами на блокирование определенных HTTP-команд. Кроме того, некоторые среды приложений могут не поддерживать другие команды. Для этих случаев API OneDrive предоставляет альтернативный способ указания HTTP-команды при необходимости.

Вы можете туннелировать любой HTTP-запрос через запрос POST, отправив запрос POST и добавив заголовок X-HTTP-Method-Override, в котором указан нужный метод. Это сообщает серверу, что запрос следует обрабатывать не как запрос POST, а как команду, указанную в качестве значения заголовка.

Этот заголовок действителен только для запросов POST. Он будет игнорироваться для других методов HTTP.

Например, если брандмауэр блокирует команду DELETE, то приложение может туннелировать команду в API, позволяя приложению удалить файл.

POST /drive/items/{item-id} HTTP/1.1
Host: api.onedrive.com
X-HTTP-Method-Override: DELETE

Этот запрос удалит указанный ресурс. Ответ службы будет таким же, как и для метода HTTP с командой DELETE.