Как кодировать специальные символы в теле запроса Wiremock? - PullRequest
0 голосов
/ 21 января 2020

Я использую сервер Wiremock для имитации ответов и использую формат JSON для имитации ответов.

{
  "request":
  {
    "url": "/token",
    "method": "POST",
    "bodyPatterns" : [{
      "contains": "username=test_user@gmail.com&password=passwordtest_security_token"
    }]
  },
  "response":
  {
    "status": 200,
    "headers":
    {
      "Content-Type" : "application/json"
    },
    "jsonBody": {"message": "ok"}
}

Это не работает, так как '@' в письме не закодировано. Мне нужно передать "test_user% 40gmail" для запроса на работу.

Здесь изменение только в одном месте. Но для других макетов тела запроса имеют много специальных символов ** (@,% * \ n \ s) **. Есть ли способ обработать часть кодирования в Wiremock.

Кроме того, есть ли способ кодировать строку в URL?

1 Ответ

0 голосов
/ 22 января 2020

В приведенном выше примере отсутствует награда, препятствующая загрузке в WireMock. Приведенный ниже пример завершен:

{
    "request": {
        "url": "/token",
        "method": "POST",
        "bodyPatterns": [{
                "contains": "username=test_user@gmail.com&password=passwordtest_security_token"
            }
        ]
    },
    "response": {
        "status": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "jsonBody": {
            "message": "ok"
        }
    }
}

В своем вопросе вы отметили, что вам нужно использовать %40 вместо @. Мне не удалось воспроизвести этот сценарий. Как я не уверен, если вы публикуете через форму или необработанную строку.

В случае использования обычного параметра «Данные формы» это может привести к невозможности сопоставления.

enter image description here

Но отправка в виде сырое тело результат совершенно противоположный. Пример ведет себя точно так, как вы бы описали. Ниже приведен скриншот моего почтальона:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...