Имя: Пароль:
1C
1С v8
GET без записи в файл
0 b612
 
29.07.19
18:00
Уважаемые.

Как получить ответ сервера, не записывая его в файл ?
Платформа 8.3.14.1630 толстый клиент, управляемое.

В инструкции написано  <ИмяВыходногоФайла> (НЕОБЯЗАТЕЛЬНЫЙ)
но на деле, если не задать или задать пустую строку, выдаёт ошибку
{ВнешняяОбработка.HTTPЗапросы.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Получить)
        ответик=Соединение.Получить(ТекстДляЗапроса,"");
по причине:
Неправильный путь к файлу. Схема не зарегистрирована




HTTPСоединение (HTTPConnection)
Получить (Get)
Синтаксис:
Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>)
Параметры:
<HTTPЗапрос> (обязательный)
Тип: HTTPЗапрос.
HTTP-запрос.
<ИмяВыходногоФайла> (необязательный)
Тип: Строка.
Имя файла, в который помещаются данные полученного ресурса. Если не указан или содержит пустую строку, то тело ответа может быть получено из объекта HTTPОтвет.
Возвращаемое значение:
Тип: HTTPОтвет.
1 polosov
 
29.07.19
18:03
(0) Будь мужиком задай имя файла или убери кавычки.
2 AllJoke
 
29.07.19
18:05
ПолучитьТелоКакПоток();
ПолучитьТелоКакСтроку()
3 Garykom
 
гуру
29.07.19
18:17
(1) Угу ПолучитьИмяВременногоФайла("html")
4 Garykom
 
гуру
29.07.19
18:18
В строку не рекомендую, сервер может несколько гигов отдать легко при хорошем канале достаточно шустро.
В поток сразу писать куда то так что один хрен лучше в файл.
5 Вафель
 
29.07.19
18:27
(4) а чем строка от потока (по памяти) будет отличаться?
6 Garykom
 
гуру
29.07.19
18:59
(5) А хз как оно в платформе 1С реализовано, но как минимум экономия и времени и памяти ибо символы в строках двухбайтовые в 1С.
7 Жан Пердежон
 
29.07.19
19:08
(0) необязательный, это значит:

Соединение.Получить(ТекстДляЗапроса),

а не как у тебя;
да и первый параметр назван в лучших традициях говнокодинга.
8 b612
 
29.07.19
20:20
в том и дело что сервер будет отдавать по 50 байтов на каждый запрос
9 b612
 
29.07.19
20:22
Жан Пердежон

Соединение.Получить(ТекстДляЗапроса)
не работает
выдаёт ошибку
10 PiotrLoginov
 
29.07.19
20:33
"не работает" - так позволено каким-нибудь юзверям выражаться, но никак не уважающему себя специалисту.

"выдает ошибку" - уже ближе к корректному посту...
11 Мимохожий Однако
 
29.07.19
21:33
(9) текст ошибки в студию
12 b612
 
29.07.19
22:32
{ВнешняяОбработка.HTTPЗапросы.Форма.Форма.Форма(20)}: Ошибка при вызове метода контекста (Получить)
        ответик=Соединение.Получить(ТекстДляЗапроса);
по причине:
Неправильный путь к файлу. Схема не зарегистрирована
13 trad
 
29.07.19
22:51
(12) дали же правильный ответ в (2)
14 Жан Пердежон
 
31.07.19
10:39
(12) весь говнокод показывай, с инициализации переменных
15 Anton R
 
29.12.19
00:19
HTTPЗапрос = Новый HTTPЗапрос(ТекстДляЗапроса);
       ответик=Соединение.Получить(HTTPЗапрос);
16 Cthulhu
 
29.12.19
12:14
(12): а полностью текст ошибки прочитать - религия мешает?
"с_х_е_м_а _н_е_ з_а_р_е_г_и_с_т_р_и_р_о_в_а_н_а"
(а потом посмотреть в настройки и подумать - чо и где не так)
17 Anton R
 
30.12.19
01:46
(15) Поясняю свой ответ, в документации этого нет:
Если в метод "Получить" объекта "HTTP соединение" первым параметром передается строка, то требуется второй параметр, иначе получишь ошибку из сабжа.
Если первым параметром передается объект типа "HTTPЗапрос" - второй параметр не обязателен.

Поэтому вместо "ответик=Соединение.Получить(ТекстДляЗапроса,""); " как в сабже, достаточно написать:

HTTPЗапрос = Новый HTTPЗапрос(ТекстДляЗапроса);
ответик=Соединение.Получить(HTTPЗапрос);
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой