美文网首页
PHP 处理接口 body 的逻辑

PHP 处理接口 body 的逻辑

作者: 93b3d3ccb7e6 | 来源:发表于2020-01-02 00:28 被阅读0次

开发环境:PHP 7.1.23 + Apache 2.4.34

在开发项目的过程中,前端传递参数时可使用多种格式:form-datax-www-form-urlencodedraw (json),而后台为了考虑全面,需要对这三种格式的参数分别进行处理,大概逻辑如图:

图一

PHP 代码如下:

/**
     * 获取请求体中的数据
     * @return mixed
     * @throws Exception  
     */
    private function _getBody(){
        
        $data = file_get_contents("php://input");          
        $data1 = $_POST;  

        if (empty($data)){ 

            if (empty($data1)) {
                throw new Exception("请求参数不能为空", 400);
            } else { 
                return $data1;
            }

        } else { 
 
            //判断字符串是否包含 {
            $bool = strstr($data, "{"); 

            if (!$bool) {//x-www-form-urlencoded
                var_dump($data1);
                return $data1;

            } else {//raw (json)

                var_dump("data: ".$data);  
                $json_data = json_decode($data, true);  
                return $json_data;
            }            
        }
    }

主要是图一标红旗的地方需要注意,而最终 return 的都是关联数组,接口测试如图:

图二

如果使用 $_POST 获取不到数据,可能是 php.ini 配置的问题,按照下图修改并重启服务器试试:

图三

刚学 PHP 不久,如果写得不好,欢迎大家指正!😆

相关文章

网友评论

      本文标题:PHP 处理接口 body 的逻辑

      本文链接:https://www.haomeiwen.com/subject/dtknoctx.html