Как включить символ ' & ' в инструкцию bash curl



Я пытаюсь использовать curl в bash для загрузки веб-страницы, но & символ в URL не интерпретируется как символ, как я хотел бы. Любые идеи о том, как я могу убедить Баша, что символ & - Это просто скучный персонаж и ничего особенного?

574   5  

5 ответов:

помещение всего URL-адреса в двойные кавычки должно позаботиться о вашей проблеме.

curl "http://www.example.com?m=method&args=1"

вы используете & в качестве разделителя для получения URL-адреса? Или находится в куске данных?

если он находится в данных, вы должны закодировать его в символ HTML, если нет, окружите кавычками.

кодирование & должны стать %26 в URL.

curl "http://www.example.com?m=this%26that

ставим одинарные кавычки вокруг & символ, кажется, работает. То есть, используя URL, как http://www.example.com/page.asp?arg1=${i}'&'arg2=${j} with curl возвращает запрошенную веб-страницу.

вместо того, чтобы пытаться экранировать символы"&", вы можете указать параметры HTTP url в запросах POST с параметром-d, как показано ниже:

curl -X POST http://www.example.com \
-d arg1=this \
-d arg2=that

Если запрос является GET, то вы также должны добавить-G вариант, который говорит curl для отправки данных с GET запроса.

curl -X GET -G http://www.example.com \
-d arg1=this \
-d arg2=that

можно использовать %26 вместо &. Код сущности будет работать нормально.

Comments

    Ничего не найдено.