SLIM PHP api 400错误-$\请求不工作
下面是一个流行的教程,我开始学习如何正确使用RESTAPI 当我试图创建一个简单的PostAPI时,我一直遇到一个400错误,到目前为止,我还没有在网上找到任何答案 空气污染指数如下:SLIM PHP api 400错误-$\请求不工作,php,apache,rest,slim,Php,Apache,Rest,Slim,下面是一个流行的教程,我开始学习如何正确使用RESTAPI 当我试图创建一个简单的PostAPI时,我一直遇到一个400错误,到目前为止,我还没有在网上找到任何答案 空气污染指数如下: $app->post('/test', function() use ($app) { // check for required params verifyRequiredParams(array('email')); echo "S
$app->post('/test', function() use ($app) {
// check for required params
verifyRequiredParams(array('email'));
echo "Success";
});
它尝试使用此代码块验证“email”参数,与教程中的相同:
function verifyRequiredParams($required_fields) {
$error = false;
$error_fields = "";
$request_params = array();
$request_params = $_REQUEST;
// Handling PUT request params
if ($_SERVER['REQUEST_METHOD'] == 'PUT') {
$app = \Slim\Slim::getInstance();
parse_str($app->request()->getBody(), $request_params);
}
foreach ($required_fields as $field) {
if (!isset($request_params[$field]) || strlen(trim($request_params[$field])) <= 0) {
$error = true;
$error_fields .= $field . ', ';
}
}
if ($error) {
// Required field(s) are missing or empty
// echo error json and stop the app
$response = array();
$app = \Slim\Slim::getInstance();
$response["error"] = true;
$response["message"] = 'Required field(s) ' . substr($error_fields, 0, -2) . ' is missing or empty';
echoRespnse(400, $response);
$app->stop();
}
}
我想知道是否有某种apache配置文件阻止了这些函数的数据或其他内容?可能的问题:
您是否仔细检查了请求标题中所选的内容类型是否正确?
我怀疑客户机正在感知从服务器端发送的格式错误的标记语言
可能的解决办法:
将内容类型:application/x-www-form-urlencoded更改为application/JSON,反之亦然。以便教程接收 $name=$app->request->post('name') POST参数必须在有效负载数据中 姓名=您的姓名和密码=传递和发送电子邮件=me@mail.com 应用程序/x-www-form-urlencoded 如果在URL之后而不是在有效负载数据中提供参数,则这是GET请求的参数。在这种情况下,教程部分起作用(它看到了用于验证所需参数是否存在的参数),但它在“任何地方”查找参数,而它应该只查找POST的有效负载参数
Array
(
)