Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions