猿问

Wiremock.Net 查询参数与 SOQL 查询

我正在使用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。


我认为问题出在查询参数中,因为它有两个等号“=”。有人可以帮我解决这个问题吗?


慕尼黑的夜晚无繁华
浏览 77回答 2
2回答

狐的传说

这已在 WireMock.Net 的最新版本 (1.0.19) 中修复请重试并将此答案标记为已接受(如果它对您有效)。详细信息:解决方案基于Get url parameters from a string in .NET

炎炎设计

您可以尝试进行 url 编码。所以当你在做SELECT Id from User where username='user@gmail.com'你应该做的SELECT %20Id%20from%20User%20where%20username%3D%27user%40gmail.com%27希望能帮助到你。
随时随地看视频慕课网APP
我要回答