2015-10-18 54 views
0

我想发送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,但发现这是接收后参数的方式。

+0

如果请求是作为Content-Type应用程序/ x-www-form-urlencoded或multipart/form-data发送的,则只会填充$ _POST - 如果您使用任何其他内容类型发送该请求,那么你需要从'php:// input'中读取数据(使用'file_get_contents'),然后自己解析它。 – CBroe

+0

你张贴JSON数据到你的PHP Web服务?或者请告诉你如何发送它。 –

+0

@SashantPardeshi是的,我发送json数据在请求的主体。问题出在php代码中。现在我使用上面的答案得到了解决方案。 – Piyush

回答

0

我发现了解决方案,如果有其他人面临同样的问题。要读取请求正文中发送的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 
} 

现在它会给出正确的值。

相关问题