Нужно из 1С 8.3 заинтегрироваться с REST API. Одна из множества функций реализуется PUT методом. При выполнении этого метода сервис возвращает
HTTP/1.1 405 METHOD NOT ALLOWED
что довольно странно. Установил сканер трафика HTTP Debugger Pro, начал смотреть запросы. Оказалось, что при использовании конструкции
HttpСоединение.Записать(HTTPЗапрос);
или
HttpСоединение.ВызватьHTTPМетод("PUT", HTTPЗапрос);
фактически выполняется не "PUT", а "HEAD". Отсюда и 405. Кто нибудь сталкивался с такой проблемой?
Разобрался. Очередная недокументированная особенность. Для того, чтобы выполнялся метод PUT, требуется для объекта HTTPЗапрос выполнить любой метод установки тела. Даже если логика REST API не предполагает передачи тела запроса.
Например можно сделать так:
HttpЗапрос.УстановитьТелоИзСтроки("");
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс