zoukankan      html  css  js  c++  java
  • 【Phalapi2.0】 如何使用 source 通过 header 传参数

    做接口服务时候。有些场景会使用header 来传递参数。 查看官网文档说明

    数据来源 source
    指定当前单个参数的数据来源,可以是post、get、cookie、server、request、header、或其他自定义来源。未指定时,默认为统一数据源。

    目前支持的source与对应的数据源映射关系如下:

    本次我使用header 时 ,发现 一直校验失败。过程如下

    1  ./config/app.php  里边  apiCommonRules 设置应用层统一参数

        'apiCommonRules' => array(
             //签名
             'sign' => array(
                'name' => 'sign', 'require' => true,"source"=>'header',
          ),
           
        ),

    报错: 

     排查过程: 

    1   打开文件   ./vendor/phalapi/kernal/src/Request.php 

    打断点, 通过比对  $data 和 $rule   , 发现 大小写问题。

     

     查看底层代码

      ./vendor/phalapi/kernal/src/Request.php 

     

     ./vendor/phalapi/kernal/src/Request/Parser.php 

     发现。这是PHP 接收 header 时候。首字母都会是大写

     解决办法: 

      ./config/app.php  里边  name 值首字母改为大写  即可

      'apiCommonRules' => array(
            // //签名
            'sign' => array(
                'name' => 'Sign', 'require' => true,"source"=>'header',
            ),
        ),

    验证: 

    成功 !

  • 相关阅读:
    SVN日常使用
    zabbix安装
    shell日常脚本(centos6)
    mysql故障记录
    PHP商品秒杀功能实现思路分析
    Redis
    PHP 实现实时通信一般有两种方式
    FTP DNS SMTP POP3 HTTP HTTPS DHCP DNS SNMP Telnet 端口号
    TCP/UDP/HTTP的区别和联系
    TCP 和 UDP 的区别
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/8672724.html
Copyright © 2011-2022 走看看