Параметр запроса Wiremock.Net с запросом SOQL - PullRequest
5 голосов
/ 08 апреля 2019

Я использую WireMock-Net для запросов на заглушку.

Я хочу сделать следующий запрос:

Запрос:

http://localhost:63078/services/query/?q=SELECT Id from User where username='user@gmail.com'

Запрос составлен с помощью SOQL-запроса. Вот фрагмент того, что я пытался сделать:

stub.Given(Request.Create()
   .WithPath("/services/query/")
   .WithParam("q", "SELECT Id from User where username='user@gmail.com'")
   .UsingGet())
   .RespondWith(Response.Create()
      .WithStatusCode(200)
      .WithHeader("Content-Type", "application/json")
      .WithBodyAsJson(new { Id = "5bdf076c-5654-4b3e-842c-7caf1fabf8c9" }));

Проблема в том, что wiremock всегда отвечает 404. Я также пытался использовать RegexMatcher, вот так:

   .WithPath("/services/query/")
   .WithParam("q", new WireMock.Matchers.RegexMatcher("SELECT Id from User where username.*$"))

Но я все еще получил 404.

Я думаю, что проблема в параметре запроса, потому что он имеет два равных "=". Может кто-нибудь помочь мне решить эту проблему?

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Вы можете попытаться выполнить кодирование URL.Поэтому, когда вы делаете

SELECT Id from User where username='user@gmail.com'

, вы должны делать

SELECT %20Id%20from%20User%20where%20username%3D%27user%40gmail.com%27

Надеюсь, это поможет.

0 голосов
/ 15 июня 2019

Это было исправлено в последней версии (1.0.19) из WireMock.Net

Пожалуйста, повторите попытку и отметьте этот ответ как принятый, если он работает правильно для вас.

Подробности: решение основано на Получить параметры URL из строки в .NET

...