свернуть данные формы регистрации в MailChimp - PullRequest
0 голосов
/ 11 мая 2018

Мне не удалось получить успешную регистрацию в MailChimp при использовании curl для репликации отправки формы. В настоящее время получает 404.

curl --fail -X POST -H ‘Content-Type:application/x-www-form-urlencoded’ -d ‘EMAIL=TestEmail@gmail.com’ -d ’b_485e6665509b1dca9cf1bcb26_d561f45431=’ -d ‘subscribe=Subscribe’ https://twitter.us18.list-manage.com/subscribe/post?u=485e6665509b1dca9cf1bcb26&id=d561f45431

Используя встроенный код из MailChimp, я настроил конечную точку бина, чтобы проверить, какие заголовки / полезные данные были доставлены, чтобы я мог повторить это с помощью приведенной выше команды curl.

Headers
X-Google-Apps-Metadata domain=gmail.com,host=*.mockable.io
Accept-Language en-GB,en-US;q=0.9,en;q=0.8
X-Appengine-Citylatlong -33.867487,151.206990
X-Cloud-Trace-Context 75c9528ee08db8469efc3c1a34d72a0a/1679801727246466213
Origin http://romantic-wool.surge.sh
X-Appengine-Default-Namespace gmail.com
Referer http://romantic-wool.surge.sh/
X-Appengine-Region nsw
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
Host demo0541952.mockable.io
Cache-Control max-age=0
Content_Type application/x-www-form-urlencoded
Content_Length 66
X-Appengine-City sydney
X-Appengine-Country AU
Content-Type application/x-www-form-urlencoded
Upgrade-Insecure-Requests 1
Cookie __utmc=260836241; _ga=GA1.2.1607676483.1525841229; _gid=GA1.2.1814557639.1525841235; __utmz=260836241.1525927272.4.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utma=260836241.1607676483.1525841229.1525944073.1525951960.7

Данные формы / Полезная нагрузка:

EMAIL=&b_485e6665509b1dca9cf1bcb26_d561f45431=&subscribe=Subscribe

Все, что я могу думать, это то, что у меня неверный синтаксис для строки "b_485e6665509b1dca9cf1bcb26_d561f45431"

1 Ответ

0 голосов
/ 11 мая 2018

Мне удалось выяснить, почему моя оригинальная команда curl не работала.

Bash интерпретировал амперсанд внутри аргумента URL как отдельную команду, которая пыталась быть запущенной, что приводило к неправильному форматированию URLи неполный.Обходной путь - просто заключить URL в кавычки.В дополнение к этому с помощью опции -d тип запроса для команды по умолчанию становится POST, что исключает необходимость -X для указания типа запроса.Ниже приведена команда curl, которая успешно использовалась в этом случае.

curl -d 'EMAIL=TestEmail@gmail.com' -d 'b2_485e6665509b1dca9cf1bcb26_d561f45431=' -d 'subscribe=Subscribe' 'https://twitter.us18.list-manage.com/subscribe/post?u=485e6665509b1dca9cf1bcb26&id=d561f45431'

Вывод этого заключается в том, чтобы заключить все аргументы параметров в кавычки.Это гарантирует, что bash не будет интерпретировать какие-либо специальные символы как отдельные команды.

...