wordl安装的卷曲POST请求

时间:2012-12-18 15:33:18

标签: wordpress shell post curl

我试图在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的

URL

最后有一个网址

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@feed.no&Submit=Install+WordPress

2 个答案:

答案 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数据。