|
Как открыть инет-страничку - по ссылке - и сохранить её код? | ☑ | ||
---|---|---|---|---|
0
Garry1010
16.03.21
✎
17:35
|
Есть некий url на сайт. Беда в том, что если его открыть в браузере, то он нормально открывается и показывает json-структуру, которую и надо в конце концов. Но при попытке получить тот же результат через объект HTTPЗапрос выдаёт какую-то хрень. А именно, он возвращает какой-то html-код типа такого:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/html"> <head> <meta charset............. Причём эта хрень в браузере не открывается по-человечески. Как оно умудряется так работать, без понятия, - это всё современные извраты, уверен.[:злобность:] ... Так как же в 1С открыть эту страничку (по ссылке, а не то, что я привёл тут) и сохранить её код в файл? Есть такие варианты? |
|||
1
Kassern
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 запрос. |
|||
2
Dzenn
гуру
16.03.21
✎
17:48
|
да, скорее всего дело в заголовках
|
|||
3
Garykom
гуру
16.03.21
✎
17:49
|
(0) ПолеHTML документа используй, это самое простое
|
|||
4
Kassern
16.03.21
✎
17:50
|
(1) и да обработать правильно ответ еще. В твоем случае скорее всего можно так:
Ответ=Соединение.ВызватьHTTPМетод("GET",Запрос); СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку(); Если ЗначениеЗаполнено(СтрокаОтвета) Тогда Поток=Ответ.ПолучитьТелоКакПоток(); ЧтениеJSON=Новый ЧтениеJSON; ЧтениеJSON.ОткрытьПоток(Поток); МассивДанных=ПрочитатьJSON(ЧтениеJSON); ЧтениеJSON.Закрыть(); КонецЕсли; |
|||
5
acht
16.03.21
✎
17:53
|
(0) > Как оно умудряется так работать, без понятия, - это всё современные извраты, уверен
Это характеризует в первую очередь тебя, а не сайт/апи/1С и пр. |
|||
6
Garikk
16.03.21
✎
18:16
|
(0) <Как оно умудряется так работать, без понятия, - это всё современные извраты, уверен.[:злобность:] >
+1 к (5) современные это какие? 10 летней давности? то у вас не получается json выцепить из запросов, говорит лишь о вашей квалификации и непонимании того как веб работает, неважно современный или нет. далее, открывать ссылку надо в браузере И смотреть в средствах разработчика в network запросы которые возвращают нужный тебе json, зачастую всякие api-вьюшки возвращают всякие плюшки чтобы ты json этот видел отформатированным и красивым в браузере, а не мешанину из символов на 10 листов без переносов, плюс может там тебе возвращается ошибка по авторизации? |
|||
7
Garry1010
16.03.21
✎
23:07
|
(5) Я не должен - и не могу - быть специалистом во всех областях IT, а их уже развелось как грязи.:((
|
|||
8
Garry1010
16.03.21
✎
23:08
|
(6) То же самое - см. выше.
|
|||
9
ДедМорроз
16.03.21
✎
23:12
|
Самое простое-берем браузер,в котором он отображается и управляем им или через расширение браузера или,если браузер Осёл,то через Com-объект.
|
|||
10
acht
16.03.21
✎
23:13
|
(7) > Я не должен - и не могу.
Каким образом это заставляет тебя злобствовать? |
|||
11
Garry1010
17.03.21
✎
13:45
|
(4) А что, ПолучитьТелоКакСтроку() и ПолучитьТелоКакПоток() могут вернуть разные результаты?
|
|||
12
Garry1010
17.03.21
✎
13:54
|
(2) А что значит создать заголовки?
Ведь: HTTP-заголовки ответа сервера в виде соответствия: "Название заголовка" - "Значение". Использование: Только чтение. Как же их создать можно? Не вижу. |
|||
13
Garykom
гуру
17.03.21
✎
13:59
|
(12) СП или гугл продать?
|
|||
14
acht
17.03.21
✎
14:00
|
(13) > СП
это всё современные извраты, уверен.[:злобность:] =) |
|||
15
Garykom
гуру
17.03.21
✎
14:03
|
(14) Ну да с такой длиной и быть таким нубом очень странно
|
|||
16
Garry1010
17.03.21
✎
14:08
|
А что-то более умное есть?
|
|||
17
Garykom
гуру
17.03.21
✎
14:15
|
(16) "Наймите программиста"©
|
|||
18
acht
17.03.21
✎
14:24
|
(16) "Я не должен", (С) Garry1010, Как открыть инет-страничку - по ссылке - и сохранить её код?
|
|||
19
Kassern
17.03.21
✎
14:25
|
(16) на инфостате и мисте полно тем и примеров как совершать http соединение и обрабатывать результаты через 1с, куча примеров с get,post запросами. Найдите время и почитайте, там все достаточно просто, либо воспользуйтесь советом (17).
|
|||
20
Garry1010
17.03.21
✎
14:26
|
Любит же наш человек почесать свой ЧСВ - хлебом не корми. Тьфу на вас, тьфу на вас ещё раз.:((
|
|||
21
acht
17.03.21
✎
14:44
|
(20) Чо, больше не придешь?
|
|||
22
Kassern
17.03.21
✎
14:45
|
(20) а ты хочешь, чтобы за тебя все с нуля написали? Я в (1) (4) итак максимально ясно расписал, что нужно делать, если этого не достаточно, то врятли тут кто-то сможет помочь
|
|||
23
TormozIT
гуру
17.03.21
✎
14:51
|
Бери конструктор http-запросов в 1С (например http://devtool1c.ucoz.ru/index/konsol_http_zaprosov/0-66 )
Подбирай заголовки (можно начать со сниферинга браузерных запросов например через Wireshark). В тяжелых случаях потребуется создание сессии и передача ее токена, но тогда точно легко не решишь задачу. Дальше жмешь "сгенерировать код" https://www.hostedredmine.com/issues/862516 и получаешь готовый код |
|||
24
Garikk
17.03.21
✎
14:57
|
(20) Не хочешь разбираться, а хочешь бесплатно чтобы за тебя проблему решили?
Это наш человек не ЧСВ хочет почесать, а коекто хочет чтобы за него нахаляву его работу сделали...и при этом еще выпендривается |
|||
25
acht
17.03.21
✎
15:01
|
(23) > через Wireshark
Чот как-то сурово сразу так. |
|||
26
TormozIT
гуру
17.03.21
✎
15:10
|
(25) Есть что то попроще или удобнее? Чем пользуешься сам? Что советуешь новичкам?
|
|||
27
acht
17.03.21
✎
16:06
|
(26) Кнопка F12 в браузере
|
|||
28
Garikk
17.03.21
✎
16:39
|
(26) devtools по f12 в браузерах и postman
|
|||
29
TormozIT
гуру
17.03.21
✎
18:30
|
(27) Согласен. Это удобнее.
|
|||
30
TormozIT
гуру
17.03.21
✎
18:32
|
(28) Как postman позволяет ловить запросы от браузера?
|
|||
31
Garry1010
19.03.21
✎
15:47
|
Короче, для моего случая правильный вариант доступа оказался таким, что в HTTPСоединение в первом параметре конструктора подставляется адрес НЕтестового сайта без имени протокола, но с указанием пути к API (а точнее: fgis.gost.ru/fundmetrology/eapi/). А в качестве параметра конструктора объекта HTTPЗапрос подставляются ТОЛЬКО параметры команды GET.
Но стоило это мне хз сколько дней научного тыка и сотен попыток понять чего же эти объекты хотят в параметрах - путём тупой вариации этих URL'ов. Изменял их туда-сюда, пытаясь подобрать правильные. Ну, может, ещё и заголовки влияют - тут уже я вообще без понятия: из инета понадёргал всяких вариантов. |
|||
32
Kassern
19.03.21
✎
16:02
|
(31) нда...а ты точно читал, что я тебе в (4) написал? Там сразу в 1 пункте написано, что нужно цепляться вначале к самому серверу, без пути к скрипту. в пункте 3 описано, как раз про то что надо пихать путь до скрипта в хттп запрос
|
|||
33
Kassern
19.03.21
✎
16:03
|
(32) спецом же на примере тебе расписал
|
|||
34
Garykom
гуру
19.03.21
✎
16:08
|
Хыхыхыыыыыыыыыыы
|
|||
35
Garry1010
19.03.21
✎
16:12
|
(32) У тебя в (4) написано совсем другое. Не веришь? О_О
|
|||
36
Kassern
19.03.21
✎
16:13
|
(35) Ошибся, в (1) посте я расписал тебе все еще и с примером. А в (4) дополнил, как можно распарсить json ответ
|
|||
37
Garykom
гуру
19.03.21
✎
16:29
|
(35) Ты бы юморист сначала свой нерабочий код приве
А потом телепатов звал |
|||
38
Garykom
гуру
19.03.21
✎
16:29
|
(37) *привел
|
|||
39
Kesim
19.03.21
✎
18:49
|
(0) не слушай их, они все современные.
выводи на форму текстовый реквизит с видом поле ХТМЛ, в значение реквизита вставляй некий урл. форму открываешь и показывает json-структуру и даже не надо сохранять, всегда свежий |
|||
40
Garykom
гуру
19.03.21
✎
20:07
|
(39) см (3)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |