Ответ 1
cURL > 7.18.0 имеет опцию --data-urlencode
, которая решает эту проблему. Используя это, я могу просто отправить запрос POST как
curl -d name=john --data-urlencode [email protected]&3*J https://www.mysite.com
Как включить специальные символы, такие как @и и в данные CURL POST? Я пытаюсь передать имя и пароль, например:
curl -d name=john [email protected]&3*J https://www.mysite.com
Это вызовет проблемы, поскольку @
используется для загрузки файлов и &
для указания более одного ключа/значения. Есть ли способ избежать этих символов? \@
и \&
, похоже, не работают.
cURL > 7.18.0 имеет опцию --data-urlencode
, которая решает эту проблему. Используя это, я могу просто отправить запрос POST как
curl -d name=john --data-urlencode [email protected]&3*J https://www.mysite.com
Как использовать коды объектов...
@ = %40
& = %26
Итак, у вас будет:
curl -d 'name=john&passwd=%4031%263*J' https://www.mysite.com
Двойная цитата ("") всего URL
. Она работает.
curl "http://www.mysite.com?name=john&[email protected]&3*J"
Попробуйте следующее:
export CURLNAME="john:@31&3*J"
curl -d -u "${CURLNAME}" https://www.example.com
Я сделал это
~]$ export A=g
~]$ export B=!
~]$ export C=nger
curl http://<>USERNAME<>1:[email protected]<>URL<>/<>PATH<>/
Только что нашел для меня другие решения. Вы можете использовать знак "\" перед вашим специальным.
passwd=\@31\&3*J