首页 > 解决方案 > 如何在空手道中将多个输入传递给 GET 请求

问题描述

非常感谢您对我上一个问题的解决方案。我在下面有另一个请求:我需要使用 GET 操作验证我之前的 POST 调用的响应。我有一个 GET 方法,需要多个输入才能传递请求。以下是我正在做的方式:

获取调用:“/Questions/Get/” 输入:formType、pageId、sectionId、name

我的空手道代码: 第一种方法*

Given path "/Questions/Get/",formType,pageId,sectionId,name
When method GET
Then status 200

第二种方法:

Given path "/Questions/Get/"
And param formType = formtype
And param pageId = pageid
And param sectionId = sectionid
And param name = questionname
When method GET
Then status 200

第三种方法:

* def getreq =
"""
{
 "formType":"#(formtype)", 
 "pageId":"#(pageid)", 
 "sectionId":"#(sectionid)", 
 "shortName":"#(questionname)"
 }
 """
 Given path "/Questions/Get/",getreq 
 When method GET
 Then status 200

            

在上述所有情况下,我看到请求失败。请帮助我知道这是正确的方法还是这里缺少什么..

标签: karate

解决方案


您需要清楚“多个输入”的含义。是查询参数还是路径参数。身体不是 a 的选项GET。请花一些时间阅读文档并了解不同类型的 API 请求。

因此,除非他们知道您的服务器期望什么,否则没有人可以帮助您。看看下面的示例,尝试执行它,更改值并查看差异。

* url 'https://httpbin.org'
* param foo = 'bar'
* path 'anything'
* request { foo: 'bar' }
* method post

推荐阅读