Подтвердить что ты не робот

Специальные символы, такие как @и & in cURL POST data

Как включить специальные символы, такие как @и и в данные CURL POST? Я пытаюсь передать имя и пароль, например:

curl -d name=john [email protected]&3*J https://www.mysite.com

Это вызовет проблемы, поскольку @ используется для загрузки файлов и & для указания более одного ключа/значения. Есть ли способ избежать этих символов? \@ и \&, похоже, не работают.

4b9b3361

Ответ 1

cURL > 7.18.0 имеет опцию --data-urlencode, которая решает эту проблему. Используя это, я могу просто отправить запрос POST как

curl -d name=john --data-urlencode [email protected]&3*J https://www.mysite.com

Ответ 2

Как использовать коды объектов...

@ = %40

& = %26

Итак, у вас будет:

curl -d 'name=john&passwd=%4031%263*J' https://www.mysite.com

Ответ 3

Двойная цитата ("") всего URL. Она работает.

curl "http://www.mysite.com?name=john&[email protected]&3*J"

Ответ 4

Попробуйте следующее:

export CURLNAME="john:@31&3*J"
curl -d -u "${CURLNAME}" https://www.example.com

Ответ 5

Я сделал это

~]$ export A=g

~]$ export B=!

~]$ export C=nger


   curl http://<>USERNAME<>1:[email protected]<>URL<>/<>PATH<>/

Ответ 6

Только что нашел для меня другие решения. Вы можете использовать знак "\" перед вашим специальным.

passwd=\@31\&3*J