【问题标题】:send array of URL param via karate api通过 karate api 发送 URL 参数数组
【发布时间】:2018-11-15 22:45:01
【问题描述】:

空手道是否支持在 URL 参数中发送参数数组,因为我的一个 API 以这种方式工作。以下是我的 API 测试 url 概念之一。当我在邮递员上手动执行时,它工作正常。不知道空手道是否支持这种格式。

https<URL>?param={"firstname":"XXX","lastname":"XXX"....}

我尝试过使用 param 和 params。但是参数会给我& 而不是,。在 param 中,它将显示 ?param=%7B%firstname%22%3A%22abc...

【问题讨论】:

    标签: karate


    【解决方案1】:

    空手道可以支持它,我仍然不清楚你的问题是什么,但让我试试。请注意,根据 HTTP 规范 - 一些特殊字符将被 URL 编码。

    试试这些:

    And param param = '{"firstname":"XXX","lastname":"XXX"}'
    And param firstName = ['XXX', 'XXX']
    

    有关更多想法,请参阅此演示示例:params.feature

    编辑:如果您需要创建可能的动态 JSON,请阅读set 关键字的文档。在 JSON 下方被转换为字符串 - 因为从您的描述来看,这就是它的样子(这对我来说真的没有意义)

    * set data
    | path      | value |
    | firstName | 'XXX' |
    | lastName  | 'XXX' |
    * string data = data
    * param param = data
    

    【讨论】:

    • 我不能使用第二种解决方案,因为有很多不同的参数被放入带有逗号分隔符的数组中。然后应该将该数组放入参数中。抱歉我的解释不好。我将向您展示我的 api 如何工作的示例。 https://<URL>?param={"firstname":"xxx","lastname":"zzz","address":"abc","phoneNumber":123456,"state":"LA","country":"us"}
    • @ezwan 对不起,我是空手道的作者,我放弃了。它看起来像是一个设计得很糟糕的 API。希望别人能够帮助你。无论如何对我的答案进行了编辑。万事如意
    猜你喜欢
    • 2019-05-20
    • 2016-05-27
    • 2013-06-21
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多