![]() |
|
При HTTP запросе дает ошибку 400 | ☑ | ||
---|---|---|---|---|
0
KuznecovvIvan
21.11.22
✎
14:07
|
Пытаюсь сделать JSON запрос, он выдает ошибку 400. Вроде все правильно сделал. Сервер поднял на IIS. Причем если открываю через браузер, то обращение происходит к HTTP-сервису. Но если пытаюсь сделать этим кодом, то ошибка 400. Высылаю код
Функция ОтправитьHTTPЗапрос(СтруктураОтправки) Логин = СтруктураОтправки.Логин; Пароль = СтруктураОтправки.Пароль; Сервер = СтруктураОтправки.Сервер; Порт = СтруктураОтправки.Порт; АдресРесурса = СтруктураОтправки.АдресРесурса; СтрокаJSON = СтруктураОтправки.СтрокаJSON; МетодСервиса = СтруктураОтправки.МетодСервиса; #Если Клиент Тогда SSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Выбирать),Новый СертификатыУдостоверяющихЦентровWindows()); #Иначе SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено); #КонецЕсли HTTPСоединение = Новый HTTPСоединение(Сервер,Порт,Логин,Пароль,,,SSL);// // не забыть вернуть Кузнецов ИВ HTTPЗапрос = новый HTTPЗапрос(МетодСервиса); HTTPЗапрос.АдресРесурса = АдресРесурса; HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8 ,ИспользованиеByteOrderMark.НеИспользовать);// HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json-rpc"); //HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded"); ДокументJSON = HTTPЗапрос.ПолучитьТелоКакСтроку(); ваплво = ПрочитатьСтрокуJSON(ДокументJSON); Попытка РезультатВыполнения = HTTPСоединение.ВызватьHTTPМетод(МетодСервиса,HTTPЗапрос); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Возврат РезультатВыполнения; КонецФункции |
|||
1
Irbis
21.11.22
✎
14:10
|
400 — "плохой запрос", ошибка, возможно, в синтаксисе и сервер ни бельмеса ни ферштейн.
|
|||
2
KuznecovvIvan
21.11.22
✎
14:13
|
(1) Скажем так в какую сторону нужно смотреть? Возможно не правильно сформирован JSON запрос. Или что-то возможно в настройках не так тика в адресе ресурса или в не правильно методе сервиса?
|
|||
3
KuznecovvIvan
21.11.22
✎
14:14
|
(1) Просто я редко работаю с HTTP-сервисами, задача не моя, по наследству осталось. Поэтому особо не понимаю что значит может быть ошибка в синтаксисе
|
|||
4
Галахад
гуру
21.11.22
✎
14:28
|
Так непонятно, что в переменных. Возможно в данных проблема.
И что это за мусор: ДокументJSON = HTTPЗапрос.ПолучитьТелоКакСтроку(); ваплво = ПрочитатьСтрокуJSON(ДокументJSON); |
|||
5
KuznecovvIvan
21.11.22
✎
14:33
|
(4) Да это мусор в переменных следующее:
СтруктураОтправки = новый Структура; СтруктураОтправки.Вставить("Логин", ""); // СтруктураОтправки.Вставить("Пароль", ""); СтруктураОтправки.Вставить("Сервер","192.168.65.140"); СтруктураОтправки.Вставить("Порт", 443); СтруктураОтправки.Вставить("АдресРесурса", "https://192.168.65.140/Working_KuznecovIV/hs/APIService/V1/SoglasovanieObmenDO"); СтруктураОтправки.Вставить("СтрокаJSON", ДокументJSON); СтруктураОтправки.Вставить("МетодСервиса", "POST"); Если я пытаюсь адрес ввести в браузере в поисковую строку, то он выполняет метод GET HTTP-сервиса. И авторизация там норм проходит |
|||
6
Irbis
21.11.22
✎
14:33
|
(2) Всё смотреть, вплоть до того как ответит сервис если сунуть запрос в строку браузера. Иногда лишний слэш или ещё какой мусорный символ мешает.
|
|||
7
Irbis
21.11.22
✎
14:34
|
Имхается что в адресе ресурса толь IP должен остаться, остальное в метод перехать должно
|
|||
8
KuznecovvIvan
21.11.22
✎
14:34
|
(6) Понял, спасибо. Сейчас буду пробовать
|
|||
9
Галахад
гуру
21.11.22
✎
14:38
|
(7) +1. Протокол тоже не нужно указывать. Достаточно 192.168.65.140
И по авторизации, скорее всего не пройдет. В браузере возможно кто-то пароль уже вводил и теперь он в кэше. |
|||
10
Галахад
гуру
21.11.22
✎
14:40
|
(9) + 9 Т.е. наоборот из адреса ресурса нужно выкинуть все что до имени базы.
|
|||
11
KuznecovvIvan
21.11.22
✎
15:02
|
(10) Спасибо большое) Да именно в этом было дело) /Working_KuznecovIV/hs/APIService/V1/SoglasovanieObmenDO оставил так, все заработало) Спасибо)
|
|||
12
Галахад
гуру
21.11.22
✎
15:13
|
(11) Пожалуйста. )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |