Имя: Пароль:
1C
1С v8
Не получается написать простенький Post-запрос
0 rphosts
 
27.10.15
17:38
Есть некий сайт и когда захожу на него через браузер по URL что-то типа  http://192.168.0.1:1234/ajax?svc=core/login&params={"user":"Adm","password":"12345"}
получаю со стороны сервера кучу требуемой инфы, а вот получить то-же самое из 1С не получается. На входе и на выходе всё в новомодном JSON в UTF-8.  core/login - имя команды для начала работы с сервисом.

Пробовал по разному, например так:

Заголовки = Новый Соответствие();
Заголовки.Вставить("POST / HTTP/1.1");
Заголовки.Вставить("Accept", "application/json");
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
HTTPСоединение = Новый HTTPСоединение("192.168.0.1",1234,,,,,);
HTTPЗапрос = Новый HTTPЗапрос("/ajax.html", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки("<data>core/login&params={""user"":""Adm"",""password"":""12345""}</data>","UTF-8");
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Результат = Ответ.ПолучитьТелоКакСтроку();    

с той стороны возвращается ошибка, вместо ожидаемого ответа

Параметры по другому нужно как-то передавать(как именно?) или что в коде поправить?
1 rphosts
 
27.10.15
17:40
В оригинальной строке URL символы { и } движком форума были транслированы в &
2 rphosts
 
27.10.15
17:41
точнее в & и &quot;}
3 Serginio1
 
27.10.15
18:05
Так из браузера ты Get запросом ходишь
4 Serginio1
 
27.10.15
18:08
и берешь в руки фиддлер и анализируешь
5 rphosts
 
27.10.15
18:08
(3) это не ошибка? В SDK разработчика сервиса написано только:

Все запросы осуществляются только методом POST. Дополнительные параметры («params») должны быть представлены в формате JSON. Ответ так же возвращается в виде JSON. Все текстовые параметры, посланные и принятые, предполагают использование кодировки UTF-8.
6 rphosts
 
27.10.15
18:23
(4) >фиддлер
кого?
7 rphosts
 
27.10.15
18:36
ну и GET тут никак

Соединение = Новый HTTPСоединение("http://192.168.0.1",1234);
Соединение.Получить("/ajax.html?svc=core/login&params={""user"":""Adm"",""password"":""12345""}", "D:\2.js");

создает файл нулевой длины.
8 rphosts
 
27.10.15
19:01
забавно, а если вот так, то работает:

Соединение = Новый HTTPСоединение("192.168.0.1",1234);
Соединение.Получить("/ajax.html?svc=core/login&params={""user"":""Adm"",""password"":""12345""}", "D:\2.js");

в принципе может этим и обойдусь.
9 Serginio1
 
27.10.15
20:15
(6) Работаешь с HTTP запросами и не знаешь что такое фиддлер
http://www.telerik.com/fiddler

http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureFiddler
10 oleg_km
 
27.10.15
21:49
ТАк а в

Соединение = Новый HTTPСоединение("192.168.0.1",1234);

и не надо указывать http
СП читай внимательнее
11 rphosts
 
28.10.15
01:53
(9) да, вчера первый день работал а сегодня уже знаю что такое фидлер!
12 rphosts
 
28.10.15
01:54
(10) уже прочитал
13 jsmith82
 
28.10.15
01:57
Так няшно пост написал
14 rphosts
 
28.10.15
02:13
+ (11) вообще-то думал вчера снифером воспользоваться, но может это и удобнее будет