API名称中的破折号如何在Javascript中设置标头变量?

时间:2019-10-11 20:40:32

标签: karate

空手道的新手。 javascript生锈。我已经阅读了intuit.karate页面。我正在发送S.O.S.在这里,请客气。当标头具有类似Content-Type的名称时,如何通过.js配置标头?我指的不是值,而是实际的名称。我有一个标头api,其中包含一个破折号和一些不包含破折号的名称。另外,可以在配置之后但在实际调用之前更新标头。尝试这种失败的事情:

'''   背景:

* callonce read('getAuthorization.feature')
* configure headers = read('classpath:payload.json')
* print 'headers: ', headers
* configure headers = {"Authorization" : authToken}

'''

payload.json具有静态值,并且授权authToken来自getAuthorization.feature。我希望将授权添加到有效负载的标题信息中。

对于在这个问题上的任何困惑,我表示歉意。在来到这里之前,我尝试过intuit的空手道页面,示例和youtube vid。

1 个答案:

答案 0 :(得分:1)

您可以考虑的一些更改

  • 当标头中包含短划线时,例如Content-Type
var header = {}
header["Content-Type"] = "<CONTENT_TYPE>"
  • 嵌入的表达式,可在您阅读时将值直接注入payload.json

payload.json

{
  "Authorization" : "#(authToken)"
  "Content-Type"  : "application/json"
}

在功能文件中:

* callonce read('getAuthorization.feature')
* configure headers = read('classpath:payload.json')

以上两个步骤就足够了。

  • 使用js的标题

header.js

function fn() {
    var authCall = karate.callSingle('getAuthorization.feature')
    var headers = {}
    // add all static headers as well
    headers["Content-Type"] = "application/json"
    headers["Authorization"] = authCall.authToken
    return headers
}

功能方面:

* configure headers = read('classpath:header.js')()

* configure headers = call read('classpath:header.js')