Я использую облачный сервер на raspberry pi (raspian) и хотел бы сообщить своему хосту IP-адрес. С этой целью поставщик моего URL-адреса предоставляет API, который работает путем отправки:

https://<provider_url>/upd.php?user=<username>&pwd=<pwd>&host=<hostname>

Если я ввожу это в браузер (с правильными параметрами, очевидно), я получаю сообщение «Имя хоста обновлено».

Чтобы автоматизировать этот процесс, я хотел бы сделать то же самое через командную строку. Прочитав про команду curl я попробовал

curl --data "user=<username>&pwd=<pwd>&host=<hostname>" https://<provider_url>/upd.php

поскольку строка, заданная параметром --data , должна быть добавлена к URL с помощью символа '?'и каждый аргумент разделяется' & '. Тем не менее, я получаю сообщения об ошибках на 'инв

1 ответ1

1

поскольку строка, заданная параметром --data , должна быть добавлена к URL с помощью ?

Вам не хватает этого [акцента моего]:

-d , --data <data>

(HTTP) Отправляет указанные данные в запросе POST на сервер HTTP […]

-G , --get

При использовании этой опции все данные, указанные с помощью -d , --data , --data-binary или --data-urlencode будут использоваться в запросе HTTP GET вместо запроса POST, который в противном случае использовался бы. Данные будут добавлены к URL с ? разделитель.

(источник)

Использование всей исходной строки в качестве URL также должно работать. Следите за цитатами:

curl 'https://<provider_url>/upd.php?user=<username>&pwd=<pwd>&host=<hostname>'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .