我试图在shell中发布一个post请求来调用wordpress安装,但wordpress只是告诉我“你必须提供一个电子邮件地址”。这就是我所拥有的:
curl -X POST -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:12.0) Gecko/20100101 Firefox/12.0" -e "http://dev.example.com/yeshello/wp-admin/install.php?step=2" -H "Content-Type:application/x-www-form-urlencoded" -H "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Encoding:gzip, deflate" --data "?step=2&weblog_title=yeshello&user_name=admin&admin_password=admin&admin_password2=admin&admin_email=mathias%40example.com&Submit=Install+WordPress" http://dev.example.com/yeshello/wp-admin/install.php
我设法让它在名为Postman的Chrome插件中运行 这是我在那里建立的:
User-Agent:Mozilla / 5.0(Macintosh; Intel Mac OS X 10.8; rv:12.0)Gecko / 20100101 Firefox / 12.0 Referer:http://dev.feed.no/yeshello/wp-admin/install.php?step=2 内容类型:application / x-www-form-urlencoded 接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8 Accept-Encoding:gzip,deflate
这是原始数据,插件有一个支持
的字段步骤= 2及weblog_title = yeshello&安培; USER_NAME =管理员&安培; ADMIN_PASSWORD =管理员&安培; admin_password2 =管理员&安培; ADMIN_EMAIL =的Mathias%40feed.no&安培;提交=安装+ WordPress的
最后有一个网址
答案 0 :(得分:3)
当我编写URL标题时,我尝试在curl命令中使用整个url,如下所示:
curl -X POST -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:12.0) Gecko/20100101 Firefox/12.0" -e "http://dev.example.com/yeshello/wp-admin/install.php?step=2" -H "Content-Type:application/x-www-form-urlencoded" -H "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Encoding:gzip, deflate" --data "?step=2&weblog_title=yeshello&user_name=admin&admin_password=admin&admin_password2=admin&admin_email=mathias%40example.com&Submit=Install+WordPress" http://dev.example.com/yeshello/wp-admin/install.php?step=2&weblog_title=yeshello&user_name=admin&admin_password=admin&admin_password2=admin&admin_email=mathias@example.com&Submit=Install+WordPress
它有效:) 但我觉得,为什么不发布这个。希望它可以帮到某人!如果有人想澄清为什么要这样做,我很乐意听到。
答案 1 :(得分:1)
这是原始答案的简化版本。谢谢你的努力,它有所帮助。
curl --data-urlencode "weblog_title=MY_BLOG_NAME" \
--data-urlencode "user_name=MYUSERNAME" \
--data-urlencode "admin_password=MYPASSWORD" \
--data-urlencode "admin_password2=MYPASSWORD" \
--data-urlencode "admin_email=MY@EMAIL.COM" \
--data-urlencode "Submit=Install+WordPress" \
http://wordpress_host/path_if_any/wp-admin/install.php?step=2
这是我能想到的最简化的。我没有看到任何更改用户代理字符串的理由,设置引荐来源网址并在POST和GET数据中包含所有参数。使用--data
和/或--data-urlencode
时,Curl会设置正确的内容标题。
有趣的是,step=2
应该是一个GET变量,其他一切都需要是POST数据。