【问题标题】:Wiremock.Net query parameter with SOQL Query带有 SOQL 查询的 Wiremock.Net 查询参数
【发布时间】:2019-04-08 19:46:01
【问题描述】:

我正在使用 WireMock-Net 进行存根请求。

我想做以下请求:

请求:

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

请求由 SOQL 查询组成。 这是我尝试做的一个sn-p:

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。

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

【问题讨论】:

    标签: c# .net-core wiremock


    【解决方案1】:

    WireMock.Net 的最新版本 (1.0.19) 已修复此问题

    如果此答案对您正确,请重试并将其标记为已接受。

    详情:解决方案基于Get url parameters from a string in .NET

    【讨论】:

      【解决方案2】:

      您可以尝试进行 url 编码。 所以当你在做的时候

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

      你应该这样做

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

      希望对你有帮助。

      【讨论】:

      • 如果我使用以下期望,它就可以工作: - SELECT Id from User where username%3D%27user%40gmail.com%27 但是要使用它,我必须更改我当前的实现,并且在我的意见,是不对的。我会尝试另一种策略或等待wiremock.net库的“修复”。
      • @JoséSampaio:请尝试版本 1.0.19
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多