如何使用 curl 发送 PHP 输入流数据?
How to send PHP input stream data using curl?
POST
在我的本地机器上,我想像这样使用 cURL 作为 HTTP 客户端:
curl -X POST -F 'email=derp@example.com' -F 'password=blink182' http://example.com
上面的 curl 语句使用了 HTTP POST 方法,可以在 PHP 中检索,如下所示:
echo $_POST['email']; // derp@example.com
echo $_POST['password']; // blink182
php://输入
然而,我真正想要的是来自PHP input stream php:://input
and not from the POST method$_POST
的数据。
可以在 PHP 中检索 PHP 输入流,如下所示:
$input = json_decode( file_get_contents( 'php://input' ) );
echo $input->email; // derp@example.com
echo $input->password; // blink182
这让我想到了我的问题,如何使用 curl 发送 PHP 输入流数据?
来自PHP website:
php://input
is a read-only stream that allows you to read raw data from the request body. php://input
is not available with enctype="multipart/form-data"
.
因此,如果您使用 -H "Content-Type: application/json"
将 Content-Type
指定为 application/json
,您应该在输入流中获取它
完整示例:
curl -X POST https://reqbin.com/echo/post/json
-H 'Content-Type: application/json'
-d '{"email":"derp@example.com","password":"blink182"}'
POST
在我的本地机器上,我想像这样使用 cURL 作为 HTTP 客户端:
curl -X POST -F 'email=derp@example.com' -F 'password=blink182' http://example.com
上面的 curl 语句使用了 HTTP POST 方法,可以在 PHP 中检索,如下所示:
echo $_POST['email']; // derp@example.com
echo $_POST['password']; // blink182
php://输入
然而,我真正想要的是来自PHP input stream php:://input
and not from the POST method$_POST
的数据。
可以在 PHP 中检索 PHP 输入流,如下所示:
$input = json_decode( file_get_contents( 'php://input' ) );
echo $input->email; // derp@example.com
echo $input->password; // blink182
这让我想到了我的问题,如何使用 curl 发送 PHP 输入流数据?
来自PHP website:
php://input
is a read-only stream that allows you to read raw data from the request body.php://input
is not available withenctype="multipart/form-data"
.
因此,如果您使用 -H "Content-Type: application/json"
将 Content-Type
指定为 application/json
,您应该在输入流中获取它
完整示例:
curl -X POST https://reqbin.com/echo/post/json
-H 'Content-Type: application/json'
-d '{"email":"derp@example.com","password":"blink182"}'