我正在尝试POST API请求,我将API响应作为
“d”:{ “__metadata”:{ “uri”:“http://ev-qa02.zs.local/IncentiveManager/0002i1/wcf/v5.svc/InDataRequestCreators('9f31c6da-ec56-4360-8589-d21b6320f99b')”, “type”:“ZSAssociates.Javelin.ETL.Rest.v5.InDataRequestCreator” }, “ScenarioId”:“9f31c6da-ec56-4360-8589-d21b6320f99b”, “CallbackUrl”:“”, “DataExpiresOnUtc”:“/日期(4103913600000)/”, “CreateScenarioIfMissing”:false, “AdapterId”:“0fcbd8d2-f5cb-4e2a-bda8-bb37037b022d”, “InDataRequestIdOut”:“eb36f8a9-5b7d-4835-88f6-4af67830c1e9”, “InDataRequestUrlOut”:“/ InDataRequests('eb36f8a9-5b7d-4835-88f6-4af67830c1e9')” } }
现在我正在尝试点击另一个API请求,其中我的网址会有所不同 http://ev-qa02.zs.local/IncentiveManager/0002i1/WCF/V5.svc/InDataRequests( 'eb36f8a9-5b7d-4835-88f6-4af67830c1e9')/ FileCreator
* InDataRequests('eb36f8a9-5b7d-4835-88f6-4af67830c1e9')此随机数是从上面的响应值“InDataRequestIdOut”生成的
如何附加先前API响应的URL并添加我的第二个POST请求。 我无法捕获我的回复并在其他API POST请求中使用它?我真的很感激,如果你能在这里帮助我,因为几天以来一直困在这个问题上,我也经历过doc和例子但是无法解决这个问题。我也附上了截图。PostUrlFailureScreenshot 我的主要问题是来自eclipe screenshot
的第26和27行Scenario: Verify that JIM Idr request ofr Post
Given header Content-Type = 'Application/JSON'
And header Accept = 'Application/JSON'
And header Authorization = 'Basic
UUEwMl9JbmNlbnRpdmVNYW5hZ2VyXzAwMDJpMTpZWkxaRjlGclR1eWhlcVNJbXlkTlBR'
Given path 'InDataRequestCreators'
* def user =
"""
{
"ScenarioId":"9f31c6da-ec56-4360-8589-d21b6320f99b",
"AdapterId":"0fcbd8d2-f5cb-4e2a-bda8-bb37037b022d",
"DataExpiresOnUtc":"2100-01-18T00:00:00",
"CreateScenarioIfMissing":"false"
}
"""
And request user
When method post
Then status 201
* print 'the value of response is:', response
And def app = response
And path 'app.InDataRequestIdOut' + '/FileCreators'
* def body =
"""
{
"InDataRequestId": "1d6326a2-d25f-41d2-9303-8a6e6101efcc",
"ProcedureName": "",
"SourceWorkspacePath": ""
}
"""
And request body
When method post
Then status 201
答案 0 :(得分:0)
首先,我认为您使用的是错误的Cucumber Eclipse插件,请参阅此问题并确保:https://github.com/intuit/karate/issues/90
你做错了很多事。例如,它应该是application/json
(小写)。在您的上述说明中有很多地方混合大写和小写,请注意。
如果没有这个,我们无法理解URL的设置方式 - 我无法提供适当的帮助。
你对如何使用空手道表达有一个基本的误解,例如这只是连接两个字符串:
And path 'app.InDataRequestIdOut' + '/FileCreators'
这可能会给你一些提示,而不是上面的提示:
When url baseUrl
And path "InDataRequests('" + response.InDataRequestIdOut + "')/FileCreator"
是FileCreator还是FileCreators。你似乎很粗心:(