|
Ошибка 400 при работе с HTTPs соединением | ☑ | ||
---|---|---|---|---|
0
Paradox
28.10.17
✎
12:37
|
Добрый день!
Платформа: 8.3.10.2299. До перехода на HTTPs, обращался к веб-сервису без проблем по HTTP соединению (авторизация доменная): HTTP = Новый HTTPСоединение(ИмяСервера, Порт, , , , , , Истина); Когда сделали HTTPs, то доделал строку соединения до вида: HTTP = Новый HTTPСоединение(ИмяСервера, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL(), Истина); Методы веб-сервиса и структура базы веб-сервиса не менялась. Просто администраторы сделали HTTPs. Теперь при выполнении PUT-запроса получаю ошибку 400. Подскажите, пожалуйста, в чем может быть дело? Проблема на стороне веб-сервиса или я что-то не правильно указал в HTTPСоединении? Текст ошибки: Единицы измерения; {ВнешняяОбработка.ВыгрузкаВВебСервис.Форма.Форма.Форма(307)}: Ошибка выгрузки. Код ошибки: 400 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/stri... »»"> <HTML><HEAD><TITLE>Bad Request</TITLE> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> <BODY><h2>Bad Request - Invalid Verb</h2> <hr><p>HTTP Error 400. The request verb is invalid.</p> </BODY></HTML> |
|||
1
Филиал-msk
28.10.17
✎
13:33
|
(0) > The request verb is invalid
Не надо в него PUT, не хочет он этого. |
|||
2
Paradox
28.10.17
✎
14:33
|
(1) а ведь до этого (до перехода на HTTPs) именно PUT-запрос происходил из 1С в сервис и все отлично было.
К администратору надо обратиться?) |
|||
3
Филиал-msk
28.10.17
✎
14:40
|
(2) Не знаю, что у вас там под веб-сервисом понимается, но SOAP, он какбе вообще-то POST подразумевает.
Пытай админов, почему типы запросов стали по разному обрабатываться. А то сейчас окажется что, например, перед аппликейшн сервером возник какой нить энджинх для поддержки SSL со своими представлениями о мире. |
|||
4
Paradox
28.10.17
✎
14:46
|
(3) не совсем понимаю в веб-технологиях, но разработчики веб-сервиса сделали сервис не в 1С. Сказали выгружать данные в сервис PUT-запросами, а тело запроса в формате JSON.
До HTTPs, все отлично работало. Вчера перевели на защищенное соединение и пипец...походу надо копать именно сам сервис, что-то в нем случилось. |
|||
5
Paradox
28.10.17
✎
14:50
|
(1) The request verb is invalid
Могу я судить по этому сообщению, что 1С устанавливает соединение защищенное и тут уже сам сервер, на котором поднят веб-сервис отвергает мой PUT-запрос? |
|||
6
Филиал-msk
28.10.17
✎
15:56
|
(5) Да, SSL работает. Ты успешно попадаешь на веб сервер со свои непристойным предложением пута.
|
|||
7
Филиал-msk
28.10.17
✎
15:59
|
(4) Скорей всего одновременно с накатыванием SSL чтойто порубили во избежание или по недосмотру. Одмины могут.
|
|||
8
sitex
naïve
28.10.17
✎
17:02
|
(5)А вы точно тело в json отправляете ? попробуйте на этот сервис отправить PUT запрос через Postman.
|
|||
9
Филиал-msk
28.10.17
✎
17:27
|
(8) Postman отстой, пользуйте Fiddler
|
|||
10
sitex
naïve
28.10.17
✎
17:29
|
(9) Аргументируй . Если не умеешь им пользоваться это не означает что продукт плох.
|
|||
11
Paradox
28.10.17
✎
17:46
|
по ссылке, которую предоставили разработчики веб-сервиса, открывается Swagger UI, где я могу сделать GET, PUT запросы.
Вот через этот интерфейс PUT нормально выполняется. |
|||
12
Филиал-msk
28.10.17
✎
17:49
|
(10) Требует дрочки вприсядку при организации тестирования. Продукт плох.
|
|||
13
sitex
naïve
28.10.17
✎
17:49
|
(12) ну как я и думал аргумент весомый.
|
|||
14
sitex
naïve
28.10.17
✎
17:52
|
(11) Пробовали "WinHttp.WinHttpRequest.5.1" ?
|
|||
15
Филиал-msk
28.10.17
✎
17:52
|
(11) Интерфейс на https? Ты точно в нужный сервер попадаешь своим начальным CONNECT на https?
|
|||
16
Paradox
28.10.17
✎
17:54
|
(11) не пробовал
|
|||
17
Филиал-msk
28.10.17
✎
17:55
|
(13) А ты ценитель, однако.
|
|||
18
Paradox
28.10.17
✎
17:55
|
(12) это как понять? Я делаю в 1С, на HTTP работало без проблем. После перехода на HTTPs в коде добавил только объявление
Новый ЗащищенноеСоединениеOpenSSL() |
|||
19
sitex
naïve
28.10.17
✎
17:57
|
(17) Фи Фи фи забыл добавить.
|
|||
20
Филиал-msk
28.10.17
✎
17:57
|
(16) Попробуй. Там дело в том, что при установке ssl сначала вылетает CONNECT, а твой PUT пойдет уже внутри канала. Если сервер CONNECT не ожидает, ты получишь такую же ошибку.
Вдруг он ждет SSL на 8443 каком нибудь. |
|||
21
Paradox
28.10.17
✎
18:00
|
Вот сама процедура отправки запроса. Буду пробовать win http.
ИмяСервера = "*****"; Порт = 443; ИмяМетода = "***" + ИмяМетода; HTTP = Новый HTTPСоединение(ИмяСервера, Порт, , , , , Новый ЗащищенноеСоединениеOpenSSL(), Истина); ЗаголовокЗапросаHTTP = Новый Соответствие(); ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json-patch+json"); ЗапросPUT = Новый HTTPЗапрос(ИмяМетода + "/" + РезультатЗапроса.Объекты.Guid1c, ЗаголовокЗапросаHTTP); ЗапросPUT.УстановитьИмяФайлаТела(ПутьКФайлу); Возврат HTTP.Записать(ЗапросPUT); |
|||
22
sitex
naïve
28.10.17
✎
18:03
|
(20) Я думаю разрабы сообщили бы что у них запросы завернуты на другой порт.
|
|||
23
sitex
naïve
28.10.17
✎
18:11
|
(21) Как вариант вызвать на прямую HTTP.ВызватьHTTPМетод("PUT",ЗапросPUT);
|
|||
24
Paradox
28.10.17
✎
18:27
|
(23) Капец...заработало...в чем разница между Записать() и ВызватьHTTPМетод()
во втором случае работает, а в первом нет. |
|||
25
Paradox
28.10.17
✎
18:28
|
(23) и при этом в "PUT " - надо обязательно пробел...
|
|||
26
sitex
naïve
28.10.17
✎
18:29
|
(24) Значит что то в 1 случае в заголовках сто то не то. сравните.
|
|||
27
Paradox
28.10.17
✎
18:31
|
(26) так заголовки такие же остаются...или что-то другое имеется ввиду?
ЗаголовокЗапросаHTTP = Новый Соответствие(); ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json-patch+json"); |
|||
28
sitex
naïve
28.10.17
✎
18:34
|
(27) Вообще хорошо бы на стороне сервера узнать что в логах падает в первом случае. Спросите у разрабов. Может в 1 случае там вообще не PUT а что то другое.
|
|||
29
sitex
naïve
28.10.17
✎
18:38
|
(25) НА счет этого я задавал вопрос в поддержку , внятного ответа так и не получил в чем разница. Если кто знает в чем разница с пробелом или нет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |