Skip to content

[BUG] 通过Open API上传的接口,请求头中含有 - ,执行会报错 #276

@caochenlei

Description

@caochenlei

⚠️ 验证

  • 我已经搜索过 issues,确信这不是一个重复的问题。

Go 版本

镜像中跑的

Unla 版本

v0.9.0

Platform

macOS

📝 Bug 描述

通过 Open API 上传的接口,请求头含有-字符,然后在执行的时候会报错

  - name: getUserByHeader
    description: 演示请求头参数的使用
    method: GET
    endpoint: '{{.Config.url}}/api/users/header'
    headers:
      Authorization: '{{.Request.Headers.Authorization}}'
      Content-Type: application/json
      X-APP-KEY: '{{.Args.X-APP-KEY:}}'
    args:
      - name: X-APP-KEY:
        position: header
        required: false
        type: string
        description: 用户应用key
        default: ''
        items:
          type: ''

应该把变量中的 - 转为下划线或者去掉才行,这是一个必现问题

如下改动

  - name: getUserByHeader
    description: 演示请求头参数的使用
    method: GET
    endpoint: '{{.Config.url}}/api/users/header'
    headers:
      Authorization: '{{.Request.Headers.Authorization}}'
      Content-Type: application/json
      X-APP-KEY: '{{.Args.xAppKey:}}'
    args:
      - name: xAppKey:
        position: header
        required: false
        type: string
        description: 用户应用key
        default: ''
        items:
          type: ''

🔄 复现步骤

X-APP-KEY: '{{.Args.X-APP-KEY:}}'

通过Open API上传的接口,请求头含有特殊字符秒,执行会报错

"Error: failed to render header template: template: tmpl_321f24df0c8bd21c:1: bad character U+002D '-'"

✅ 预期行为

执行不应该报错,请求头含有 - 很正常

❌ 实际行为

实际上报错了,猜测是 变量执行 出了问题

💡 可能的解决方案

建议将特殊字符去掉或者转为下划线

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions