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',
            ),
        ),

    验证: 

    成功 !

  • 相关阅读:
    [Java] java中的异常处理
    Jmeter之定时器
    Jmeter之检查点
    Jmeter之集合点
    Jmeter之关联
    Jmeter之参数化
    Jmeter测试WebService接口
    Jmeter测试MySQL数据库
    Jmeter测试HTTP接口
    使用Postman对HTTP接口进行功能测试
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/8672724.html
Copyright © 2011-2022 走看看