Node-RED:Рецепты/Как задать URL запроса: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 17: | Строка 17: | ||
[[File:nodered-recipe_set-request-url.png|center]] | [[File:nodered-recipe_set-request-url.png|center]] | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
[{"id":"b36aa30.3a7276","type":"http request","z":"c9a81b70.8abed8","name":"","method":"GET","ret":"txt","url":"","x":470,"y":300,"wires":[["1ef9987c.956c78"]]},{"id":"11167f67.5d5031","type":"inject","z":"c9a81b70.8abed8","name":"cars on craigslist","topic":"","payload":"http://vancouver.craigslist.org/search/sss?format=rss&query=cars","payloadType":"str","repeat":"","crontab":"","once":false,"x":140,"y":300,"wires":[["70154cd4.de1444"]]},{"id":"70154cd4.de1444","type":"change","z":"c9a81b70.8abed8","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":300,"wires":[["b36aa30.3a7276"]]},{"id":"1ef9987c.956c78","type":"debug","z":"c9a81b70.8abed8","name":"","active":true,"console":"false","complete":"false","x":630,"y":300,"wires":[]}] | [{"id":"b36aa30.3a7276","type":"http request","z":"c9a81b70.8abed8","name":"","method":"GET","ret":"txt","url":"","x":470,"y":300,"wires":[["1ef9987c.956c78"]]},{"id":"11167f67.5d5031","type":"inject","z":"c9a81b70.8abed8","name":"cars on craigslist","topic":"","payload":"http://vancouver.craigslist.org/search/sss?format=rss&query=cars","payloadType":"str","repeat":"","crontab":"","once":false,"x":140,"y":300,"wires":[["70154cd4.de1444"]]},{"id":"70154cd4.de1444","type":"change","z":"c9a81b70.8abed8","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":300,"wires":[["b36aa30.3a7276"]]},{"id":"1ef9987c.956c78","type":"debug","z":"c9a81b70.8abed8","name":"","active":true,"console":"false","complete":"false","x":630,"y":300,"wires":[]}] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 23: | Строка 23: | ||
Нода '''«Inject»''' генерирует [[URL-строку]], а затем нода '''«Change»''' задает значение в свойство '''«msg.URL»'''. В потоке выше задан следующий [[URL]]: | Нода '''«Inject»''' генерирует [[URL-строку]], а затем нода '''«Change»''' задает значение в свойство '''«msg.URL»'''. В потоке выше задан следующий [[URL]]: | ||
<syntaxhighlight lang="html5 | <syntaxhighlight lang="html5"> | ||
http://vancouver.craigslist.org/search/sss?format=rss&query=cars | http://vancouver.craigslist.org/search/sss?format=rss&query=cars | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 29: | Строка 29: | ||
Нам нужно вернуть [[RSS-канал]] с машинами, продающимися в Ванкувере на сайте объявлений '''Craigslist'''. В результате получатся [[XML-данные]] ниже, которые будут показаны на вкладке '''«Debug»''': | Нам нужно вернуть [[RSS-канал]] с машинами, продающимися в Ванкувере на сайте объявлений '''Craigslist'''. В результате получатся [[XML-данные]] ниже, которые будут показаны на вкладке '''«Debug»''': | ||
<syntaxhighlight lang="xml | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
Текущая версия от 18:24, 14 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Как задать URL запроса[1]
Проблема
Вам нужно динамически задать URL для ноды «HTTP request».
Решение
Задайте значение в свойство «URL» в ноде «HTTP request».
Пример
[{"id":"b36aa30.3a7276","type":"http request","z":"c9a81b70.8abed8","name":"","method":"GET","ret":"txt","url":"","x":470,"y":300,"wires":[["1ef9987c.956c78"]]},{"id":"11167f67.5d5031","type":"inject","z":"c9a81b70.8abed8","name":"cars on craigslist","topic":"","payload":"http://vancouver.craigslist.org/search/sss?format=rss&query=cars","payloadType":"str","repeat":"","crontab":"","once":false,"x":140,"y":300,"wires":[["70154cd4.de1444"]]},{"id":"70154cd4.de1444","type":"change","z":"c9a81b70.8abed8","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":300,"wires":[["b36aa30.3a7276"]]},{"id":"1ef9987c.956c78","type":"debug","z":"c9a81b70.8abed8","name":"","active":true,"console":"false","complete":"false","x":630,"y":300,"wires":[]}]
Нода «Inject» генерирует URL-строку, а затем нода «Change» задает значение в свойство «msg.URL». В потоке выше задан следующий URL:
http://vancouver.craigslist.org/search/sss?format=rss&query=cars
Нам нужно вернуть RSS-канал с машинами, продающимися в Ванкувере на сайте объявлений Craigslist. В результате получатся XML-данные ниже, которые будут показаны на вкладке «Debug»:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:enc="http://purl.oclc.org/net/rss_2.0/enc#"
xmlns:ev="http://purl.org/rss/1.0/modules/event/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:admin="http://webns.net/mvcb/"
>
<channel rdf:about="https://vancouver.craigslist.ca/search/sss?format=rss&query=cars">
<title>craigslist vancouver, BC | for sale search "cars"</title>
<link>https://vancouver.craigslist.ca/search/sss?query=cars</link>
<description></description>
<dc:language>en-us</dc:language>
<dc:rights>copyright 2017 craiglist</dc:rights>
<dc:publisher>robot@craigslist.org</dc:publisher>
<dc:creator>robot@craigslist.org</dc:creator>
<dc:source>https://vancouver...
Разбор
После ноды «HTTP request» можно добавить ноду «XML», чтобы преобразовать XML-контент в JavaScript-объект и получить упрощенный доступ к этим данным.
См.также
Внешние ссылки