首页 > 解决方案 > 如何在 Wiremock 查询参数中传递数组

问题描述

现在已经有几天了,我被 Wiremock 困住了。我无法弄清楚如何在 GET 方法中发送数组参数。我想寄这个GET http://localhost/test?filter[]=full&token=any。所以我的json看起来像这样

{
    "request": {
        "method": "GET",
        "urlPath": "/test?filter[]=full",
        "queryParameters": {
             "token": {
                 "matches": "^[A-Za-z0-9-_=.]*$"
             }
        }
    },
    "response": {
        "status": 200
    }
}

但我有一个错误,这里是错误响应

| Closest stub                                             | Request                                                  |
-----------------------------------------------------------------------------------------------------------------------
                                                           |
GET                                                        | GET
/test?filter[]=full                                        | /test?filter[]=full&token=eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp<<<<< URL does not match
                                                           | XVCJ9.eyJpYXQiOjE1MTYyMzkwMjJ9.tbDepxpstvGdW8TC3G8zg4B6rU
                                                           | YAOvfzdceoH48wgRQ
                                                           |
Query: token [matches] ^[A-Za-z0-9-_=.]*$                  | token:
                                                           | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MTYyMzkw
                                                           | MjJ9.tbDepxpstvGdW8TC3G8zg4B6rUYAOvfzdceoH48wgRQ
                                                           |
                                                           |
-----------------------------------------------------------------------------------------------------------------------

因此,如果有人知道如何使用方法发送数组参数GET,我将不胜感激。

谢谢

标签: wiremock

解决方案


问题是您在 URL 路径中放置了一个查询参数:

"urlPath": "/test?filter[]=full"

您需要做的是filter[]进入查询参数块:

{
  "request": {
    "method": "GET",
    "urlPath": "/test",
    "queryParameters": {
      "token": {
        "matches": "^[A-Za-z0-9-_=.]*$"
      },
      "filter%5B%5D": {
        "equalTo": "full"
      }
    }
  },
  "response": {
    "status": 200
  }
}

推荐阅读