Имя: Пароль:
1C
1С v8
Отправить запрос POST/GET через HTTPСоединение
0 R0mbes
 
07.12.15
21:23
Всем добрый день.
Задача стоит отправить запрос
Подскажите пожалуйста,что делаю не правильно.

Соединение = Новый HTTPСоединение("mysite.ru",80,,,,1800);
        ЗаголовкиHTTP = Новый Соответствие;
        ЗаголовкиHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");        
                
        HTTPЗапрос = Новый HTTPЗапрос("api/index.php", ЗаголовкиHTTP) ;
                HTTPЗапрос.УстановитьТелоИзСтроки("test=1&pp=q","charset=UTF-8");
        
        Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
        ОтветСтрока = Ответ.ПолучитьТелоКакСтроку();
1 R0mbes
 
07.12.15
21:24
Ошибок не выдает, но на сервер ничего не поступает, где может быть ошибка ?
2 R0mbes
 
07.12.15
21:34
Платформа 8.3.6.2237
3 R0mbes
 
07.12.15
21:41
есть тут кто-то кто работал с http ? может какие-то примеры есть
4 R0mbes
 
07.12.15
21:49
может заголовки нужно другие отсылать ?
5 Мимохожий Однако
 
07.12.15
22:06
Как определил, что на сервер ничего не поступает?
6 R0mbes
 
07.12.15
22:21
(5) там скрипт, который отсылает обратно - все что было запрошено.

если пытаюсь в браузере написать к примеру
"mysite.ru/api/index.php?"pp=p"

то получаю ответ
{"pp":"p"}

а через 1С получаю ответ: "[]"
7 Мимохожий Однако
 
07.12.15
22:23
(6)Не пробовал один в один этот же фрагмент примера запустить из 1С?
8 romix
 
07.12.15
22:29
Можно пошагово изменять работающий пример.
9 simol
 
07.12.15
22:32
может там https?
10 R0mbes
 
07.12.15
22:37
(9) неа
(8) сейчас этим и занимаюсь
11 R0mbes
 
07.12.15
22:37
(7) ну у меня почти такой-же, за исключением другого домена и ссылки
12 romix
 
07.12.15
22:38
Да кстати кавычку точно не надо урл-кодировать? Она выглядит подозрительно.
13 R0mbes
 
07.12.15
22:39
(12) в ответе ?
14 R0mbes
 
07.12.15
22:40
(12) в  index.php?
15 Сергиус
 
07.12.15
23:57
(0)ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
    ЗаголовокHTTP.Вставить("Accept-Language", "eng");
    ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
    ЗаголовокHTTP.Вставить("Content-Language", "eng");
    ЗаголовокHTTP.Вставить("Content-Charset", "utf-8");

Попробуй такие заголовки.
16 Сергиус
 
08.12.15
00:02
+(15)А вообще если у тебя GET запрос, то надо вот так:
17 Сергиус
 
08.12.15
00:03
+(16)имяВыходногоФайла = ПолучитьимяВременногоФайла("xml");

Соединение = Новый HTTPСоединение("gapi/index.php");
Соединение.Получить("?test=1&pp=q", имяВыходногоФайла);

ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(имяВыходногоФайла);
18 France
 
08.12.15
01:29
(17) а если не хмл?
19 Web00001
 
08.12.15
01:35
У тебя там действительно может обрабатываться только гет. Попробуй хотя бы использовать гет и попробуй добавить параметры в урл как в (6) а не в тело.
20 Мэс33
 
08.12.15
06:10
Поставь Fiddler, посмотри - что 1С отправляет и что получает.
Многое для себя поймешь.
21 ЧеловекДуши
 
08.12.15
07:43
(17) Можно и без файла :)
22 ЧеловекДуши
 
08.12.15
07:44
Пример работы с заголовками HTTP-запросов: загрузка версий программ с users.v8.1c.ru
http://catalog.mista.ru/public/255881/
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан