从预先休息客户端发送json有效载荷到php服务器
问题描述:
我想发送json有效载荷到我的PHP web服务。我正在测试预先休息的客户端。我已经搜索了类似的答案。但它并没有帮助我。 我正在发送这个JSON到我的PHP服务,这是在本地主机上运行。从预先休息客户端发送json有效载荷到php服务器
{
"name":"XXXX",
"password":"YYYYY"
}
我将内容类型从下拉列表更改为application/json。 但是,从预先休息客户端作为表单参数发送值工作正常。但这不是我想要的。
我的PHP代码是
$name= isset($_POST['name']) ? mysql_real_escape_string($_POST['name']) : "";
$pass= isset($_POST['pass']) ? mysql_real_escape_string($_POST['pass']) : "";
echo $name;
echo $pass;
,但它始终是打印空白值。 我是新来的PHP,但发现这是接收后参数的方式。
答
我发现了解决方案,如果有其他人面临同样的问题。要读取请求正文中发送的json数据,我们可以使用此方法
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$request_body = file_get_contents('php://input');
$data = json_decode($request_body);
$name = isset($data->name) ? mysql_real_escape_string($data->name) : "";
echo $name
}
现在它会给出正确的值。
如果请求是作为Content-Type应用程序/ x-www-form-urlencoded或multipart/form-data发送的,则只会填充$ _POST - 如果您使用任何其他内容类型发送该请求,那么你需要从'php:// input'中读取数据(使用'file_get_contents'),然后自己解析它。 – CBroe
你张贴JSON数据到你的PHP Web服务?或者请告诉你如何发送它。 –
@SashantPardeshi是的,我发送json数据在请求的主体。问题出在php代码中。现在我使用上面的答案得到了解决方案。 – Piyush