空手道 - 无法通过正确的 headers 进行授权
Karate - Trouble passing correct headers for authorization
我在为我的 graphql 端点传递正确的 headers 时遇到一些问题
Postman中的用例:
- 调用requestToken端点获取sessionToken值
- requestToken 响应包含 Key Value " 和 Token Value。
- 对于后续调用,我将 postman headers 设置为:
键 = X_SESSION_TOKEN 值 = 令牌值
空手道中的用户案例
第一个特征'requestToken.feature'成功调用并存储key + tokenValue
第二个特征成功定义并打印了令牌值
这是我的第二个请求:
功能:版本
Background:
* url 'http://api-dev.markq.com:5000/'
* def myFeature = call read('requestToken.feature')
* def authToken = myFeature.sessionToken
* configure headers = { 'X_SESSION_TOKEN': authToken , 'Content-Type': 'application/json' }
Scenario: get version
Given path 'query'
Given text query =
"""
query {
version
}
"""
And request { query: '#(query)' }
When method POST
Then status 200
And print authToken
And print response
我不确定我发送的 headers 是否正确。它返回 200,但我在响应消息
中不断收到错误 'token malformed'
有什么建议吗?新手,谢谢!
老实说这很难回答,很大程度上取决于具体的服务器。
编辑:很可能是需要进行此更改,在此处进行了解释:https://github.com/intuit/karate#embedded-expressions
* configure headers = { 'X_SESSION_TOKEN': '#(authToken)' , 'Content-Type': 'application/json' }
2 条经验:
- 应该是
X-SESSION-TOKEN
- 添加一个
Accept: 'application/json'
header
并在尝试 call
等之前尝试对 header 进行硬编码
这是一个适合我的例子:
* url 'https://graphqlzero.almansi.me/api'
* text query =
"""
{
user(id: 1) {
posts {
data {
id
title
}
}
}
}
"""
* request { query: '#(query)' }
* method post
* status 200
我在为我的 graphql 端点传递正确的 headers 时遇到一些问题
Postman中的用例:
- 调用requestToken端点获取sessionToken值
- requestToken 响应包含 Key Value " 和 Token Value。
- 对于后续调用,我将 postman headers 设置为: 键 = X_SESSION_TOKEN 值 = 令牌值
空手道中的用户案例
第一个特征'requestToken.feature'成功调用并存储key + tokenValue
第二个特征成功定义并打印了令牌值 这是我的第二个请求:
功能:版本
Background: * url 'http://api-dev.markq.com:5000/' * def myFeature = call read('requestToken.feature') * def authToken = myFeature.sessionToken * configure headers = { 'X_SESSION_TOKEN': authToken , 'Content-Type': 'application/json' } Scenario: get version Given path 'query' Given text query = """ query { version } """ And request { query: '#(query)' } When method POST Then status 200 And print authToken And print response
我不确定我发送的 headers 是否正确。它返回 200,但我在响应消息
中不断收到错误 'token malformed'有什么建议吗?新手,谢谢!
老实说这很难回答,很大程度上取决于具体的服务器。
编辑:很可能是需要进行此更改,在此处进行了解释:https://github.com/intuit/karate#embedded-expressions
* configure headers = { 'X_SESSION_TOKEN': '#(authToken)' , 'Content-Type': 'application/json' }
2 条经验:
- 应该是
X-SESSION-TOKEN
- 添加一个
Accept: 'application/json'
header
并在尝试 call
等之前尝试对 header 进行硬编码
这是一个适合我的例子:
* url 'https://graphqlzero.almansi.me/api'
* text query =
"""
{
user(id: 1) {
posts {
data {
id
title
}
}
}
}
"""
* request { query: '#(query)' }
* method post
* status 200