如何编写curl命令来模仿get方法?

时间:2017-07-06 13:47:01

标签: php http curl get

cd /var/www/html/phplearn

对于http post请求和响应。

vim send_local_post.php

<form action=http://127.0.0.1/phplearn/do_post.php method=post>
user:  <input type=text name=userName size=12/>
key:    <input type=text name=PS size=12/>
<input type=submit value=login>
</form>

vim do_post.php

<?php
$userName = $_POST["userName"];
$PS = $_POST["PS"];
echo "the name is:  ".$userName."\n";
echo "key word is:  ".$PS."\n";
?>

让我们在控制台中使用curl模仿post方法。

curl -X POST -d "userName=user&PS=key"  127.0.0.1/phplearn/do_post.php

控制台中的输出如下:

enter image description here

对于http get请求和响应。

vim send_local.get.php

<form action=http://127.0.0.1/phplearn/do_get.php method=get>
user:  <input type=text name=userName size=12/>
key:   <input type=text name=PS size=12/>
<input type=submit value=login>
</form>

vim do_get.php

<?php
$userName = $_GET["userName"];
$PS = $_GET["PS"];
echo "the name is:  ".$userName."\n";
echo "key word is:  ".$PS."\n";
?>

让我们在控制台中使用curl模拟get方法。

curl  http://127.0.0.1/phplearn/do_get.php?userName=user&PS=key

控制台中的输出如下:
enter image description here

为什么键值不能显示在控制台上,例如post方法?

1 个答案:

答案 0 :(得分:0)

这是因为&符号。当bash击中&符时,它会触发后台进程,并切断剩余的文本。

这也是您看到[1] 14975的原因,因为它正在关闭新流程并在后台运行。

要解决此问题,只需将您的网址括在引号中:

curl "http://127.0.0.1/phplearn/do_get.php?userName=user&PS=key"