如何使用cURL发送可供PHP的php://input输入流读取的请求数据
你之前使用-F参数发起的cURL请求,发送的是multipart/form-data格式的表单数据,这类数据会被PHP自动解析填充到$_POST全局变量中,此时php://input流是不可读取的。
如果你需要服务端从php://input中读取JSON格式的请求数据,直接使用如下cURL命令即可:
curl -X POST http://example.com \ -H "Content-Type: application/json" \ -d '{"email":"derp@example.com", "password":"blink182"}'
参数说明
-H "Content-Type: application/json":指定请求体格式为JSON,避免PHP自动解析请求体到$_POST-d参数后接的内容就是原始请求体,会直接写入HTTP请求的body部分,服务端可直接从php://input中读取到完整的JSON字符串,通过json_decode解析后就能获取对应字段。
如果你需要发送其他格式的原始数据,只需要替换-d后的内容为对应格式的字符串,同时调整Content-Type请求头即可。
内容的提问来源于stack exchange,提问作者Abel Callejo
相关产品推荐
相关产品推荐

