Wiremock.Net 使用 SOQL 查询的查询参数
Wiremock.Net query parameter with SOQL Query
我正在使用 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。
我认为问题出在查询参数中,因为它有两个等号“=”。
有人可以帮我解决这个问题吗?
您可以尝试进行 url 编码。
所以当你做
SELECT Id from User where username='user@gmail.com'
你应该做
SELECT %20Id%20from%20User%20where%20username%3D%27user%40gmail.com%27
希望对您有所帮助。
此问题已在 WireMock.Net
的最新版本 (1.0.19) 中修复
请重试并将此答案标记为已接受(如果它对您有效)。
详情:解决方案基于Get url parameters from a string in .NET
我正在使用 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。
我认为问题出在查询参数中,因为它有两个等号“=”。 有人可以帮我解决这个问题吗?
您可以尝试进行 url 编码。 所以当你做
SELECT Id from User where username='user@gmail.com'
你应该做
SELECT %20Id%20from%20User%20where%20username%3D%27user%40gmail.com%27
希望对您有所帮助。
此问题已在 WireMock.Net
的最新版本 (1.0.19) 中修复请重试并将此答案标记为已接受(如果它对您有效)。
详情:解决方案基于Get url parameters from a string in .NET