php – 如何在Slim中访问POST请求的JSON请求主体?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何在Slim中访问POST请求的JSON请求主体?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1833字,纯文字阅读大概需要3分钟。
内容图文
![php – 如何在Slim中访问POST请求的JSON请求主体?](/upload/InfoBanner/zyjiaocheng/700/ed74efd243754a24bff0fd5f5ce82ee7.jpg)
我只是Slim框架中的新手.我使用Slim框架编写了一个API.
POST应用程序将从iPhone应用程序发送到此API.此POST请求采用JSON格式.
但我无法访问iPhone请求中发送的POST参数.当我尝试打印POST参数的值时,每个参数都得到“null”.
$allPostVars = $application->request->post(); //Always I get null
然后我尝试获取即将到来的请求的主体,将主体转换为JSON格式并将其作为对iPhone的响应发回.然后我得到了参数的值,但它们的格式非常奇怪,如下所示:
"{\"password\":\"admin123\",\"login\":\"admin@gmail.com\",\"device_type\":\"iphone\",\"device_token\":\"785903860i5y1243i5\"}"
所以有一件事是肯定的,POST请求参数将来到这个API文件.虽然在$application-> request-> post()中无法访问它们,但它们正在进入请求正文.
我的第一个问题是如何从请求主体访问这些POST参数,我的第二个问题是为什么请求数据在将请求主体转换为JSON格式后显示为如上所述的奇怪格式?
以下是必要的代码段:
<?php
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
//Instantiate Slim class in order to get a reference for the object.
$application = new \Slim\Slim();
$body = $application->request->getBody();
header("Content-Type: application/json");//setting header before sending the JSON response back to the iPhone
echo json_encode($new_body);// Converting the request body into JSON format and sending it as a response back to the iPhone. After execution of this step I'm getting the above weird format data as a response on iPhone.
die;
?>
解决方法:
一般来说,您可以通过以下两种方式之一单独访问POST参数:
$paramValue = $application->request->params('paramName');
要么
$paramValue = $application->request->post('paramName');
更多信息可在文档中找到:http://docs.slimframework.com/#Request-Variables
在POST中发送JSON时,您必须访问请求正文中的信息,例如:
$app->post('/some/path', function () use ($app) {
$json = $app->request->getBody();
$data = json_decode($json, true); // parse the JSON into an assoc. array
// do other tasks
});
内容总结
以上是互联网集市为您收集整理的php – 如何在Slim中访问POST请求的JSON请求主体?全部内容,希望文章能够帮你解决php – 如何在Slim中访问POST请求的JSON请求主体?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。