|
Проблема с post и get запросами к ФССП | ☑ | ||
---|---|---|---|---|
0
s7cret
24.02.18
✎
22:01
|
Добрый день. Если кто работал с post и get запросами к серверу подскажет что я не так делаю.
В общем ресурс это ФССП, точнее их API для работы с их базой. Пытаюсь послать запрос на сервер Ключ - ZHtMJ2L0GOE3, параметры задал, ответ в любом случае "403", ошибка доступа. Пример из документации тоже не меняет ситуации https://api-ip.fssprus.ru/swagger Заранее благодарен. СтрокаПараметров = " { \""token\"": \""ZHtMJ2L0GOE3\"", \""request\"": [ { \""type\"": 1, \""params\"": { \""firstname\"": \""КИРИЛЛ\"", \""lastname\"": \""МИТРОФАНОВ\"", \""secondname\"": \""\"", \""region\"": \""0\"", \""birthdate\"": \""\"" } }}"; Сервер = "api-ip.fssprus.ru"; Ресурс = "/api/v1.0/search/group"; HTTPЗапрос = Новый HTTPЗапрос; HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров); HTTPЗапрос.АдресРесурса = Ресурс; ssl = Новый ЗащищенноеСоединениеOpenSSL; HTTP = Новый HTTPСоединение(Сервер,,,,,,ssl); ИмяВыходногоФайла = ПолучитьИмяВременногоФайла(); HTTPЗапрос.Заголовки.Вставить("accept", "application/json"); HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json"); ОтветHTTP = HTTP.ОтправитьДляОбработки(HTTPЗапрос,ИмяВыходногоФайла); |
|||
1
s7cret
24.02.18
✎
22:04
|
Пример get для одного лица, ошибка то же 403
СтрокаПараметров = "?token=ZHtMJ2L0GOE31®ion=0&firstname=%D0%9A%D0%98%D0%A0%D0%98%D0%9B%D0%9B&secondname=%D0%98%D0%93%D0%9E%D0%A0%D0%95%D0%92%D0%98%D0%A7&lastname=%D0%9C%D0%98%D0%A2%D0%A0%D0%9E%D0%A4%D0%90%D0%9D%D0%9E%D0%92&birthdate=08.04.1981"; Сервер = "api-ip.fssprus.ru"; Ресурс = "/api/v1.0/search/physical"; HTTPЗапрос = Новый HTTPЗапрос; HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров); HTTPЗапрос.АдресРесурса = Ресурс; ssl = Новый ЗащищенноеСоединениеOpenSSL; HTTP = Новый HTTPСоединение(Сервер,,,,,,ssl); ОтветHTTP = HTTP.Получить(HTTPЗапрос); |
|||
2
s7cret
24.02.18
✎
22:07
|
а так срабатывает, но это через com
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"utf-8"); WinHttp.Open("GET", "https://api-ip.fssprus.ru/api/v1.0/search/physical?token=ZHtMJ2L0GOE31®ion=0&firstname=КИРИЛЛ&secondname=ИГОРЕВИЧ&lastname=МИТРОФАНОВ&birthdate=08.04.1981"); WinHttp.Send(); РезультатСтр = WinHttp.ResponseText(); |
|||
3
Джексон
24.02.18
✎
22:37
|
1) убери косые палки
2) зачем ты пхаешь что-то в тело запроса, если делаешь гет? |
|||
4
s7cret
24.02.18
✎
23:44
|
(3)
Первое исправил, но ошибка осталась 403 по второму пробовал по разному и так и так, вот через get без тела запроса. АдресСервиса = "api-ip.fssprus.ru"; АдресРесурса = "/api/v1.0/search/physical"; СтрокаПараметров = "?token=ZHtMJ2L0GOE3®ion=0&firstname=%D0%9A%D0%98%D0%A0%D0%98%D0%9B%D0%9B&secondname=%D0%98%D0%93%D0%9E%D0%A0%D0%95%D0%92%D0%98%D0%A7&lastname=%D0%9C%D0%98%D0%A2%D0%A0%D0%9E%D0%A4%D0%90%D0%9D%D0%9E%D0%92&birthdate=08.04.1981"; HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса + СтрокаПараметров); HTTPСоединение = Новый HTTPСоединение(АдресСервиса, 443, , , , ,Новый ЗащищенноеСоединениеOpenSSL); Ответ = HTTPСоединение.Получить(HTTPЗапрос); |
|||
5
Fram
24.02.18
✎
23:47
|
В чем смысл объекта ssl, если никакие параметры его не указываешь?
|
|||
6
s7cret
25.02.18
✎
00:01
|
(5) Смысл в том что таким образом задаем HTTPS подключение, в большинстве случаев что успел посмотреть его таким
образом и определяют. Пробовал и так ssl1 = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),Новый СертификатыУдостоверяющихЦентровWindows()); но результат тот же. |
|||
7
Fram
25.02.18
✎
01:00
|
(6) Действительно..
Можно, конечно, заморочиться и отловить с помощью wireshark в чем разница (2) и (4), но, думаю, оно того не стоит. Просто используй (2) |
|||
8
s7cret
25.02.18
✎
01:18
|
(7) а при больших объемах нагрузка через com как понимаю больше?
|
|||
9
s7cret
25.02.18
✎
14:16
|
?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |