Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » HTTP запрос

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

OnePrg

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне нужно получить данные с сайта http://spending.gov.ua/ программно, а именно передать код ЕДРПОУ получателя/плательщика, дату начала, дату окончания периода выборки и скачать полученные данные в формате CSV. Формально всё работает, возвращает коды 200, но скачанный файл при этом совершенно не с теми данными, более того данные одни и те же.  
 
Программирую на 1С. Чтобы определить параметры запроса пользуюсь консолью в Firefox.  
 
Данные консоли при нажатии кнопки "Пошук"
 

 

 
Данные консоли при нажатии кнопки "Загрузить"
 

 

 
URL запроса при этом: http://spending.gov.ua/web/guest/transaction?p_p_id=transactionportlet_WAR_EdataPortletportlet&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1&_transactionportlet_WAR_EdataPortletportlet_mode=downloadCSV
 
Как я это реализовываю в 1С:
 
Сообщить("Начало -------------------");
 
АдресСайта = "www.spending.gov.ua";
Соединение = Новый HTTPСоединение(АдресСайта);  
 
// получаем от свервера куки
 
HTTPЗапрос = Новый HTTPЗапрос;
Ответ = Соединение.Получить(HTTPЗапрос);
Сообщить(Ответ.КодСостояния);
Куки = Ответ.Заголовки.Получить("Set-Cookie");
 
// запрос на выборку данных
 
HTTPЗапрос = Новый HTTPЗапрос;
HTTPЗапрос.АдресРесурса = "/web/guest/transaction";
HTTPЗапрос.Заголовки.Вставить("Host","spending.gov.ua");
HTTPЗапрос.Заголовки.Вставить("User-Agent","Mozilla/5.0 (Windows NT 5.1; rv:44.0) Gecko/20100101 Firefox/44.0");
HTTPЗапрос.Заголовки.Вставить("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
HTTPЗапрос.Заголовки.Вставить("Accept-Language","ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
HTTPЗапрос.Заголовки.Вставить("Accept-Encoding","gzip, deflate");
HTTPЗапрос.Заголовки.Вставить("Referer","http://spending.gov.ua/web/guest/transaction");
//HTTPЗапрос.Заголовки.Вставить("Cookie","COOKIE_SUPPORT=true; GUEST_LANGUAGE_ID=en_US; JSESSIONID=7F187E9D4FD77C4AC5FF728B83B44214; LFR_SESSION_STATE_20159=1455349755916; welcome=true");
HTTPЗапрос.Заголовки.Вставить("Cookie",Куки);
HTTPЗапрос.Заголовки.Вставить("Connection","keep-alive");
 
//HTTPЗапрос.Заголовки.Вставить("Content-Length","149");
//HTTPЗапрос.Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded");
HTTPЗапрос.УстановитьТелоИзСтроки("&sender=&recipient=22869069&dateFrom=05.02.2016&dateFrom_submit=2016/02/05&dateTo=05.02.2016&dateTo_submit=2016/02/05&mode=searchTran");
 
Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Сообщить(Ответ.КодСостояния);
 
// скачивание файла с данными  
 
HTTPЗапрос = Новый HTTPЗапрос;
HTTPЗапрос.АдресРесурса = "/web/guest/transaction?p_p_id=transactionportlet_WAR_EdataPortletportlet&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1&_transactionportlet_WAR_EdataPortletportlet_mode=downloadCSV";
HTTPЗапрос.Заголовки.Вставить("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
HTTPЗапрос.Заголовки.Вставить("Accept-Encoding","gzip, deflate");
HTTPЗапрос.Заголовки.Вставить("Accept-Language","ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
HTTPЗапрос.Заголовки.Вставить("Connection","keep-alive");
HTTPЗапрос.Заголовки.Вставить("Cookie",Куки);
HTTPЗапрос.Заголовки.Вставить("Host","spending.gov.ua");
HTTPЗапрос.Заголовки.Вставить("Referer","http://spending.gov.ua/web/guest/transaction");
HTTPЗапрос.Заголовки.Вставить("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 OPR/27.0.1689.76");
 
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("csv");
 
Ответ = Соединение.Получить(HTTPЗапрос,ИмяВременногоФайла);
Сообщить(Ответ.КодСостояния);
 
Сообщить(ИмяВременногоФайла);
ЗапуститьПриложение(ИмяВременногоФайла);
 
 
Так вот это всё формально работает: коды возврата 200, но при этом файл грузится с левыми данными.
 
Подскажите пожалуйста что не так?

Всего записей: 452 | Зарегистр. 25-10-2007 | Отправлено: 18:12 13-02-2016 | Исправлено: OnePrg, 18:15 13-02-2016
OnePrg

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос снят - сам дотумкал

Всего записей: 452 | Зарегистр. 25-10-2007 | Отправлено: 00:57 14-02-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » HTTP запрос


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru