Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как открыть инет-страничку - по ссылке - и сохранить её код?

Как открыть инет-страничку - по ссылке - и сохранить её код?
Я
   Garry1010
 
16.03.21 - 17:35
Есть некий url на сайт. Беда в том, что если его открыть в браузере, то он нормально открывается и показывает json-структуру, которую и надо в конце концов. Но при попытке получить тот же результат через объект HTTPЗапрос выдаёт какую-то хрень. А именно, он возвращает какой-то html-код типа такого:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset.............
Причём эта хрень в браузере не открывается по-человечески. Как оно умудряется так работать, без понятия, - это всё современные извраты, уверен.[:злобность:]
...
Так как же в 1С открыть эту страничку (по ссылке, а не то, что я привёл тут) и сохранить её код в файл? Есть такие варианты?
   Kassern
 
1 - 16.03.21 - 17:46
(0) Есть к примеру url api-adress.ru/orders?date=123&date2=234 который возвращает какой то json ответ. Так вот чтобы ты в 1ске его получил:
1) подключится к сервере через http соединение api-adress.ru
2) создать заголовки с типом соответствие и там прописать что ты хочешь получить ответ именно в json ("Content-Type","application/json") и прописать токен авторизации, если нужен (в твоем случае врятли).
3) создать http запрос, в котором прописать путь к скрипту orders?date=123&date2=234 и указать заголовки
4) вызвать нужный метод (POST, GET, PUT...) с данным запросом. В твоем случае, скорее всего это обычные GET запрос.
   Dzenn
 
2 - 16.03.21 - 17:48
да, скорее всего дело в заголовках
   Garykom
 
3 - 16.03.21 - 17:49
(0) ПолеHTML документа используй, это самое простое
   Kassern
 
4 - 16.03.21 - 17:50
(1) и да обработать правильно ответ еще. В твоем случае скорее всего можно так:
    Ответ=Соединение.ВызватьHTTPМетод("GET",Запрос);
    СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();
    Если ЗначениеЗаполнено(СтрокаОтвета) Тогда 
        Поток=Ответ.ПолучитьТелоКакПоток();
        ЧтениеJSON=Новый ЧтениеJSON;
        ЧтениеJSON.ОткрытьПоток(Поток);
        МассивДанных=ПрочитатьJSON(ЧтениеJSON);
        ЧтениеJSON.Закрыть();
    КонецЕсли;
   acht
 
5 - 16.03.21 - 17:53
(0) > Как оно умудряется так работать, без понятия, - это всё современные извраты, уверен
Это характеризует в первую очередь тебя, а не сайт/апи/1С и пр.
   Garikk
 
6 - 16.03.21 - 18:16
(0) <Как оно умудряется так работать, без понятия, - это всё современные извраты, уверен.[:злобность:] >
+1 к (5)

современные это какие? 10 летней давности? то у вас не получается json выцепить из запросов, говорит лишь о вашей квалификации и непонимании того как веб работает, неважно современный или нет.

далее, открывать ссылку надо в браузере И смотреть в средствах разработчика в network запросы которые возвращают нужный тебе json, зачастую всякие api-вьюшки возвращают всякие плюшки чтобы ты json этот видел отформатированным и красивым в браузере, а не мешанину из символов на 10 листов без переносов, плюс может там тебе возвращается ошибка по авторизации?
   Garry1010
 
7 - 16.03.21 - 23:07
(5) Я не должен - и не могу - быть специалистом во всех областях IT, а их уже развелось как грязи.:((
   Garry1010
 
8 - 16.03.21 - 23:08
(6) То же самое - см. выше.
   ДедМорроз
 
9 - 16.03.21 - 23:12
Самое простое-берем браузер,в котором он отображается и управляем им или через расширение браузера или,если браузер Осёл,то через Com-объект.
   acht
 
10 - 16.03.21 - 23:13
(7) > Я не должен - и не могу.
Каким образом это заставляет тебя злобствовать?
   Garry1010
 
11 - 17.03.21 - 13:45
(4) А что, ПолучитьТелоКакСтроку() и ПолучитьТелоКакПоток() могут вернуть разные результаты?
   Garry1010
 
12 - 17.03.21 - 13:54
(2) А что значит создать заголовки?
Ведь: HTTP-заголовки ответа сервера в виде соответствия: "Название заголовка" - "Значение".
Использование: Только чтение.

Как же их создать можно? Не вижу.
   Garykom
 
13 - 17.03.21 - 13:59
(12) СП или гугл продать?
   acht
 
14 - 17.03.21 - 14:00
(13) > СП 
это всё современные извраты, уверен.[:злобность:] 

=)
   Garykom
 
15 - 17.03.21 - 14:03
(14) Ну да с такой длиной и быть таким нубом очень странно
   Garry1010
 
16 - 17.03.21 - 14:08
А что-то более умное есть?
   Garykom
 
17 - 17.03.21 - 14:15
(16) "Наймите программиста"©
   acht
 
18 - 17.03.21 - 14:24
   Kassern
 
19 - 17.03.21 - 14:25
(16) на инфостате и мисте полно тем и примеров как совершать http соединение и обрабатывать результаты через 1с, куча примеров с get,post запросами. Найдите время и почитайте, там все достаточно просто, либо воспользуйтесь советом (17).
   Garry1010
 
20 - 17.03.21 - 14:26
Любит же наш человек почесать свой ЧСВ - хлебом не корми. Тьфу на вас, тьфу на вас ещё раз.:((
   acht
 
21 - 17.03.21 - 14:44
(20) Чо, больше не придешь?
   Kassern
 
22 - 17.03.21 - 14:45
(20) а ты хочешь, чтобы за тебя все с нуля написали? Я в (1) (4) итак максимально ясно расписал, что нужно делать, если этого не достаточно, то врятли тут кто-то сможет помочь
   TormozIT
 
23 - 17.03.21 - 14:51
Бери конструктор http-запросов в 1С (например http://devtool1c.ucoz.ru/index/konsol_http_zaprosov/0-66 )
Подбирай заголовки (можно начать со сниферинга браузерных запросов например через Wireshark). В тяжелых случаях потребуется создание сессии и передача ее токена, но тогда точно легко не решишь задачу.
Дальше жмешь "сгенерировать код" https://www.hostedredmine.com/issues/862516
и получаешь готовый код
   Garikk
 
24 - 17.03.21 - 14:57
(20) Не хочешь разбираться, а хочешь бесплатно чтобы за тебя проблему решили?
Это наш человек не ЧСВ хочет почесать, а коекто хочет чтобы за него нахаляву его работу сделали...и при этом еще выпендривается
   acht
 
25 - 17.03.21 - 15:01
(23) > через Wireshark
Чот как-то сурово сразу так.
   TormozIT
 
26 - 17.03.21 - 15:10
(25) Есть что то попроще или удобнее? Чем пользуешься сам? Что советуешь новичкам?
   acht
 
27 - 17.03.21 - 16:06
(26) Кнопка F12 в браузере
   Garikk
 
28 - 17.03.21 - 16:39
(26) devtools по f12 в браузерах и postman
   TormozIT
 
29 - 17.03.21 - 18:30
(27) Согласен. Это удобнее.
   TormozIT
 
30 - 17.03.21 - 18:32
(28) Как postman позволяет ловить запросы от браузера?
 
 Рекламное место пустует
   Garry1010
 
31 - 19.03.21 - 15:47
Короче, для моего случая правильный вариант доступа оказался таким, что в HTTPСоединение в первом параметре конструктора подставляется адрес НЕтестового сайта без имени протокола, но с указанием пути к API (а точнее: fgis.gost.ru/fundmetrology/eapi/). А в качестве параметра конструктора объекта HTTPЗапрос подставляются ТОЛЬКО параметры команды GET.

Но стоило это мне хз сколько дней научного тыка и сотен попыток понять чего же эти объекты хотят в параметрах - путём тупой вариации этих URL'ов. Изменял их туда-сюда, пытаясь подобрать правильные.
Ну, может, ещё и заголовки влияют - тут уже я вообще без понятия: из инета понадёргал всяких вариантов.
   Kassern
 
32 - 19.03.21 - 16:02
(31) нда...а ты точно читал, что я тебе в (4)  написал? Там сразу в 1 пункте написано, что нужно цепляться вначале к самому серверу, без пути к скрипту. в пункте 3 описано, как раз про то что надо пихать путь до скрипта в хттп запрос
   Kassern
 
33 - 19.03.21 - 16:03
(32) спецом же на примере тебе расписал
   Garykom
 
34 - 19.03.21 - 16:08
Хыхыхыыыыыыыыыыы
   Garry1010
 
35 - 19.03.21 - 16:12
(32) У тебя в (4) написано совсем другое. Не веришь? О_О
   Kassern
 
36 - 19.03.21 - 16:13
(35) Ошибся, в (1) посте я расписал тебе все еще и с примером. А в (4)  дополнил, как можно распарсить json ответ
   Garykom
 
37 - 19.03.21 - 16:29
(35) Ты бы юморист сначала свой нерабочий код приве
А потом телепатов звал
   Garykom
 
38 - 19.03.21 - 16:29
(37) *привел
   Kesim
 
39 - 19.03.21 - 18:49
(0) не слушай их, они все современные.
выводи на форму текстовый реквизит с видом поле ХТМЛ, в значение реквизита вставляй некий урл.  форму открываешь и показывает json-структуру и даже не надо сохранять, всегда свежий
   Garykom
 
40 - 19.03.21 - 20:07
(39) см (3)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.