|
Помогите с Get запросом, HTTPСоединение, HTTPЗапрос, Получить | ☑ | ||
---|---|---|---|---|
0
Desna
22.09.15
✎
17:59
|
в общем есть код на 1с
он не пашет с этим ресурсом Процедура КнопкаВыполнитьНажатие(Кнопка) //примерчик гет запроса //https://web.fort-monitor.ru/api/Api.svc/objsensorslist?id=68 Сервер = "https://web.fort-monitor.ru"; HTTP = Новый HTTPСоединение(Сервер,,"demo","demo"); ФайлРезультата ="D:\Temp\out.txt"; HTTPЗапросФорт3= Новый HTTPЗапрос("/api/Api.svc/fullobjinfo?oid=68"); //http://web.fort-monitor.ru/api/Api.svc/connect?login=demo&password=demo&lang=ru-ru&timezone=4 Попытка HTTP.Получить(HTTPЗапросФорт3,ФайлРезультата); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Ответ = Новый ТекстовыйДокумент(); Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8); ТекстОтвета = Ответ.ПолучитьТекст(); КонецПроцедуры а вот код на Си он пашет using System; using System.IO; using System.Net; namespace ConsoleTestsCSharp { class Program { static void Main(string[] args) { try { // Создание заспроса string requestText = "https://web.fort-monitor.ru/api/api.svc/connect?login=demo&password=demo&lang=ru-ru&timezone=5"; HttpWebRequest request = (HttpWebRequest)WebRequest.CreateHttp(requestText); request.CookieContainer = new CookieContainer(); // Получение ответа HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Сохранение куки CookieCollection cookies = response.Cookies; // Чтение ответа Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); string responseText = reader.ReadToEnd(); // Вывод текста запроса Console.WriteLine("Request text: " + requestText + Environment.NewLine); // Вывод текста ответа Console.WriteLine("Response text: " + responseText + Environment.NewLine); reader.Close(); response.Close(); // Создание второго запроса requestText = "https://web.fort-monitor.ru/api/api.svc/gettree?all=true"; request = (HttpWebRequest)WebRequest.CreateHttp(requestText); // Установка сохраненных куки request.CookieContainer = new CookieContainer(); foreach (Cookie item in cookies) request.CookieContainer.Add(item); response = (HttpWebResponse)request.GetResponse(); cookies = response.Cookies; stream = response.GetResponseStream(); reader = new StreamReader(stream); responseText = reader.ReadToEnd(); Console.WriteLine("Request text: " + requestText + Environment.NewLine); Console.WriteLine("Response text: " + responseText + Environment.NewLine); reader.Close(); response.Close(); } catch (Exception error) { Console.WriteLine("ERROR!" + error.Message); Console.ReadKey(); } } } } чего его в 1с допилить надо? |
|||
1
oleg_km
22.09.15
✎
18:03
|
Сервер = "https://web.fort-monitor.ru";;
Надо Сервер = "web.fort-monitor.ru"; А в HTTP = Новый HTTPСоединение(Сервер,,"demo","demo"); надо еще последний параметр добавить про SSL. |
|||
2
Desna
22.09.15
✎
18:06
|
(1) я уже так пробовал
если SSL добавить точно файл в темпе будет? |
|||
3
Desna
22.09.15
✎
18:06
|
так не пашет
Процедура КнопкаВыполнитьНажатие(Кнопка) //примерчик гет запроса //https://web.fort-monitor.ru/api/Api.svc/objsensorslist?id=68 Сервер = "web.fort-monitor.ru"; HTTP = Новый HTTPСоединение(Сервер,,"demo","demo"); ФайлРезультата ="D:\Temp\out.txt"; HTTPЗапросФорт3= Новый HTTPЗапрос("/api/Api.svc/fullobjinfo?oid=68"); //http://web.fort-monitor.ru/api/Api.svc/connect?login=demo&password=demo&lang=ru-ru&timezone=4 Попытка HTTP.Получить(HTTPЗапросФорт3,ФайлРезультата); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Ответ = Новый ТекстовыйДокумент(); Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8); ТекстОтвета = Ответ.ПолучитьТекст(); КонецПроцедуры |
|||
4
Desna
22.09.15
✎
18:40
|
(1) заработало!
|
|||
5
Desna
22.09.15
✎
21:20
|
не заработало
теперь выдает "result":"NoAuth" |
|||
6
Desna
22.09.15
✎
21:22
|
тут что-то с куками намешано
видите как в Си сие работает HttpWebRequest request = (HttpWebRequest)WebRequest.CreateHttp(requestText); request.CookieContainer = new CookieContainer(); что за кукиконтейнер, где оно в 1с? |
|||
7
trad
22.09.15
✎
21:38
|
Куки в хидерах
|
|||
8
Desna
22.09.15
✎
21:51
|
я изучил вот
v8: Получение Куков (Cookies) на 1С ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Host", СерверИсточник); ЗаголовокHTTP.Вставить("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008051206 Firefox/3.0 (.NET CLR 3.5.30729)"); ЗаголовокHTTP.Вставить("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); ЗаголовокHTTP.Вставить("Accept-Language", "ru"); ЗаголовокHTTP.Вставить("Accept-Encoding", "gzip,deflate"); ЗаголовокHTTP.Вставить("Accept-Charset", "windows-1251"); ЗаголовокHTTP.Вставить("Keep-Alive", "300"); ЗаголовокHTTP.Вставить("Connection", "keep-alive"); ЗаголовокHTTP.Вставить("Referer", СерверИсточник); Попытка НТТР.Получить("Адрес отправления", ИмяФайлаОтвета, ЗаголовокHTTP); |
|||
9
Desna
22.09.15
✎
21:52
|
+(8) смотрю описание метода Получить в 8.3,
третьего параметра в Получить уже нет. Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>) как куки то запихнуть? |
|||
10
trad
22.09.15
✎
21:56
|
Куки это заголовок с именем cookie
Заголовки передаются в конструктор запроса |
|||
11
Desna
22.09.15
✎
22:01
|
(10) нету тут cookie в таблице Список заголовков HTTP
https://ru.wikipedia.org/wiki/Список_заголовков_HTTP#.D0.9E.D0.B1.D0.B7.D0.BE.D1.80.D0.BD.D0.B0.D1.8F_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B0 каком конструкторе? |
|||
12
trad
22.09.15
✎
22:24
|
Конструктор объекта HTTPЗапрос
|
|||
13
trad
22.09.15
✎
22:27
|
||||
14
Desna
22.09.15
✎
22:32
|
(13) во дела, надо такое в инглише сразу смотреть что ли
(12) что за конструктор, выпадающие после точки доступные методы что ли в тексте? |
|||
15
trad
22.09.15
✎
22:34
|
Во дела, вот конструктор:
Новый HTTPЗапрос |
|||
16
Desna
22.09.15
✎
22:39
|
(15) дай пример как запихнуть куки в гет запросе, а.
|
|||
17
Desna
22.09.15
✎
22:48
|
(15) конструктор запроса брал, конструктор запросов в управляемом приложении брал, конструктор HTTPЗапроса не, не брал
|
|||
18
trad
22.09.15
✎
22:50
|
Кода под рукой нет - пишу с тела
у тебя выше соответствие, в него вставляешь элемент с именем cookie и значением - строка с перечислением твоих куков. Это соответствие передаешь в конструктор запроса, синтаксис в СП. |
|||
19
Desna
22.09.15
✎
22:52
|
(18) это я уже разобрал, да, спасибо, пробую
|
|||
20
trad
22.09.15
✎
22:54
|
(17) ммм, я не про эти конструкторы, а про конструктор как элемент синтаксиса языка
|
|||
21
Desna
22.09.15
✎
22:58
|
(20) то я же и спросил так сразу ", выпадающие после точки доступные методы что ли в тексте?"
только с куками то все равно беда, чтобы куки запихнуть их надо сначала получить // Сохранение куки CookieCollection cookies = response.Cookies; видишь как в Си шарпе string requestText = "https://web.fort-monitor.ru/api/api.svc/connect?login=demo&password=demo&lang=ru-ru&timezone=5";; HttpWebRequest request = (HttpWebRequest)WebRequest.CreateHttp(requestText); |
|||
22
Desna
22.09.15
✎
22:59
|
как видим CreateHttp<>Новый HTTPСоединение
|
|||
23
trad
22.09.15
✎
23:01
|
Конструктор - это конструктор, а не метод и после точки не вываливается
|
|||
24
Desna
22.09.15
✎
23:03
|
(23) давай лучше скажи как после конструктора "Новый HTTPСоединение" куки выловить, а?
|
|||
25
trad
22.09.15
✎
23:05
|
Давай без давай, да
|
|||
26
Desna
22.09.15
✎
23:13
|
(25) есть прогресс
HTTP = Новый HTTPСоединение(Сервер,,,,,,ssl); HTTPЗапросФорт3= Новый HTTPЗапрос("/api/api.svc/connect?login=demo&password=demo&lang=ru-ru&timezone=5"); в файле "Ок", но! HTTPЗапросФорт3.Заголовки.Количество()=0 как куки то отловить или сразу готовый какие подсунуть? |
|||
27
Vladal
22.09.15
✎
23:18
|
У нас в форт-монитор стучится скуль, забирает себе их данные и уже дальше из своей базы, на своем локальном серврере, я беру данные.
|
|||
28
Desna
22.09.15
✎
23:19
|
(27) во 2-ой или 3-ий Фортмонитор?
|
|||
29
trad
22.09.15
✎
23:24
|
Если хочешь посмотреть куки, которые сервер выдает, то смотри заголовки ответа, а не запроса
|
|||
30
Desna
22.09.15
✎
23:33
|
(29) в ответе
https://web.fort-monitor.ru/api/api.svc/connect?login=demo&password=demo&lang=ru-ru&timezone=5 "Ок" а куки в на странице в браузере вижу, а в 1с где его отловить то? |
|||
31
Desna
22.09.15
✎
23:35
|
не вижу в ответе никаких заголовков
https://gyazo.com/c92ea8dc8b7990797daa4896bd52dd35 |
|||
32
Desna
22.09.15
✎
23:35
|
тут либо 1с что- то не допилила, либо фортмонитор
|
|||
33
trad
22.09.15
✎
23:38
|
Я про httpответ, не про httpсоединение
|
|||
34
Desna
22.09.15
✎
23:44
|
(33) ооо, спасибо, все лучше и лучше!
https://gyazo.com/e6a6a5e99a12211621d0ea7e919bb9f9 |
|||
35
trad
22.09.15
✎
23:47
|
Вот, и берешь значение setcookie ответа и вставляшь его в cookie запроса
|
|||
36
Desna
23.09.15
✎
00:02
|
(35) спасибо огромное! работает!!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |