|
Получение отчёта с сайта через POST и GET запросы | ☑ | ||
---|---|---|---|---|
0
nikolas260579
22.06.17
✎
10:33
|
Всем добрый день. Пытаюсь получить отчёт с сайта. На сайте на кнопочке "Сформировать отчёт" висит пост-запрос, у которого в ответе есть такой параметр: ReportId. Дальше этот параметр передается в URL GET - запроса, и гет - запрос выполняется несколько раз до тех пор, пока параметр "status" в его ответе не сменится с 0 на 2. При этом в ответе формируется ещё один параметр ReportDataId, я так понимаю, по нему и нужно будет загружать отчёт.Становится доступна ссылка "Загрузить", при этом никаких запросов нет, просто открывается окно с выбором открыть или сохранить файл.
Вопросы у меня такие: ReportId из пост запроса я получил, но как правильно сделать гет? В отдельной процедуре и повторять её же до тех пор пока статус в ответе гет-запроса не будет равен 2? И как правильно получить файл с отчётом - через ФайлРезультата = ПолучитьИмяВременногоФайла(xls) и далее читать его оттуда? Или как-то иначе? Буду благодарен за любые советы. Формы обычные, платформа 8.3 |
|||
1
sFAQer
22.06.17
✎
10:35
|
(0) Обратись к разработчику сайта
|
|||
2
Адинэснег
22.06.17
✎
10:35
|
пздц каша
|
|||
3
nikolas260579
22.06.17
✎
10:38
|
(1)обращался, пока ничего путного, открытых апи нет.
|
|||
4
lodger
22.06.17
✎
10:47
|
почитайте что такое WebService, ws-ссылки и SOAP в 1с.
|
|||
5
sFAQer
22.06.17
✎
10:53
|
(4) Как ему это поможет с каким то левым сайтом?
|
|||
6
nikolas260579
22.06.17
✎
11:06
|
(5)пока не знаю, как поможет, просто читаю информацию. Делаю же так: из пост-запроса получил параметр ReportID, пишу гет-запрос
URLЗапроса = Строка("/api/report/"+ReportID+"/status"); ЗаголовкиGET = Новый Соответствие; ЗаголовкиGET.Вставить("Cookie", Кук); //URLЗапроса = Строка("/api/report/fiscaldocument/generate?outletId=&kktId=&beginDate="+ДатаНачала+"&endDate="+ДатаКонца+"&documentType=&accountingType=&paymentType="); GET_Запрос = Новый HTTPЗапрос(URLЗапроса,ЗаголовкиGET); Соединение.ВызватьHTTPМетод("GET",GET_Запрос); HTTPОтвет = Соединение.Получить(GET_Запрос,Файл1); Если HTTPОтвет.КодСостояния = 200 ТОгда ТекстовыйФайлОтвета = Новый ТекстовыйДокумент; ТекстовыйФайлОтвета.Прочитать(Файл1, КодировкаТекста.UTF8); СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст(); //ищем статус или сверяем репортдатаид Поз = Найти(СтрокаОтветаСервера,"""status"""); Если Поз>0 Тогда Строка1 = Сред(СтрокаОтветаСервера,Поз); Поз1 = Найти(Строка1,":"); Если Поз1>0 Тогда Строка2 = Сред(Строка1,Поз1+1,1);//по идее бы на цифры проверить Если Строка2 = "0" Тогда //повторяем гет-запрос? ИначеЕсли Строка2 = "2" Тогда Сообщить("отчет где-то есть"); КонецЕсли; КонецЕсли; Иначе КонецЕсли; Иначе КонецЕсли; В результате получаю статус 0. Повторять его до тех пор, пока не получу статус 2? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |