mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-07-31 01:08:41 +02:00
When respond with proxy requestMessage.Url is used, not AbsoluteUrl #268
Closed
opened 2025-12-29 15:19:26 +01:00 by adam
·
10 comments
No Branch/Tag Specified
master
1341-mapping-json
stef-aspire-tests-updates
bug/973-TinyMapper
bug/1149-AppendGuidToSavedMappingFile
feature/1150-DockerImageVersion
61
stef-1108
stef-1097
stef-1083-MessageOptions_Type_Conflict
stef-1062-logger
stef-IgnoreOpenApiErrors
stef-928-TypeLoadException-FluentAssertions-net472
nunit
stef-849
stef-847-regex-questionmark
http_verb
WireMockServerContext
webapp
ai
CommandLineArgumentsParser
2.13.0
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.25.0
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.0
1.12.0
1.11.2
1.11.0
1.10.1
1.10.0
1.9.1
1.9.0
1.8.18
1.8.17
1.8.16
1.8.15
1.8.14
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.8.7
1.8.6
1.8.5
1.8.3
1.8.2
1.8.1
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.62
1.5.61
1.5.60
1.5.59
1.5.58
1.5.57
1.5.56
1.5.55
1.5.54
1.5.53
1.5.52
1.5.51
1.5.50
1.5.49
1.5.48
1.5.47
1.5.46
1.5.45
1.5.44
1.5.43
1.5.42
1.5.41
1.5.40
1.5.39
1.5.38
1.5.37
1.5.36
1.5.35
1.5.34
1.5.33
1.5.32
1.5.31
1.5.30
1.5.29
1.5.28
1.5.27
1.5.26
1.5.25
1.5.24
1.5.23
1.5.22
1.5.21
1.5.20
1.5.19
1.5.18
1.5.17
1.5.16
1.5.15
1.5.14
1.5.13
1.5.12
1.5.11
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11.0
1.2.10
1.2.9.0
1.2.8.0
1.2.7.0
1.2.6.0
1.2.5.0
1.2.4.0
1.2.3.0
1.2.2.0
1.2.1.0
1.2.0.0
1.1.10
1.1.9.0
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.3.0
1.1.2.0
1.1.1.0
1.1.0.0
1.0.43.0
1.0.42.0
1.0.41.0
1.0.40.0
1.0.39.0
1.0.38.0
1.0.37.0
1.0.36.0
1.0.35.0
1.0.34.0
1.0.33.0
1.0.32.0
1.0.31.0
1.0.29.0
1.0.28.0
1.0.25.0
1.0.24.0
1.0.23.0
1.0.22.0
1.0.21.0
1.0.20.0
1.0.19.0
1.0.18.0
1.0.17.0
1.0.16.0
1.0.15.0
1.0.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.1
1.0.6
1.0.5
1.0.4.21
1.0.4.20
1.0.4.19
1.0.4.18
1.0.4.17
1.0.4.16
1.0.4.15
1.0.4.14
1.0.4.13
1.0.4.12
1.0.4.11
1.0.4.10
1.0.4.9
1.0.4.8
1.0.4.7
1.0.4.6
1.0.4.5
1.0.4.4
1.0.4.3
1.0.4.2
1.0.4.1
1.0.4.0
1.0.3.20
1.0.3.19
1.0.3.18
1.0.3.17
1.0.3.16
1.0.3.15
1.0.3.14
1.0.3.13
1.0.3.12
1.0.3.11
1.0.3.10
1.0.3.9
1.0.3.8
1.0.3.7
1.0.3.6
1.0.3.5
1.0.3.4
1.0.3.3
1.0.3.2
1.0.3.1
1.0.3.0
1.0.2.13
1.0.2.12
1.0.2.11
1.0.2.10
1.0.2.9
1.0.2.8
1.0.2.7
1.0.2.6
1.0.2.5
1.0.2.4
1.0.2.1
1.0.2.0
1.0.1.5
1.0.1.3
1.0.1.2
1.0.1.1
1.0.0.0
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/WireMock.Net-wiremock#268
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @adatanasov on GitHub (Apr 28, 2020).
Hello,
I have the following working local setup in IIS:
website - wwwdev.company.com
web application - wwwdev.company.com/account
API - wwwdev.company.com/account/api
The web application calls the API with relative URL "/api/...".
I want to add tests for the web app which should call a mocked API and return the responses I want. All unmatched requests should be proxied to the 'real' API.
So, I create a new website, web app and API in IIS:
website - wwwmock.company.com
web application - wwwmock.company.com/account
API - wwwmock.company.com/account/api
For the mocked API I host a WireMock service on .NET Core 2.1, similar to the example 'WireMock.Net.WebApplication.NETCore2'.
This is the part where I setup the server:
So, I want when I call GET https://wwwmock.company.com/account/api/ping to get the response from the mock API. This works.
I also want when I call GET https://wwwmock.company.com/account/api/v2/environments/current this to be redirected to https://wwwdev.company.com/account/api/v2/environments/current, but it gets redirected to https://wwwdev.company.com/v2/environments/current - without the '/account/api' part.
This is logged for the request:
"Url": "https://wwwmock.company.com/v2/environments/current",
"AbsoluteUrl": "https://wwwmock.company.com/account/api/v2/environments/current",
I think this is because of this part of the code in Response.cs
So the code gets the PathAndQuery from Url, which is "/v2/environments/current" and the baseUrl from ProxyUrl which is "https://wwwdev.company.com".
My question is can I do something, so without changing the IIS setup I get the desired result - https://wwwmock.company.com/account/api/v2/environments/current to be redirected to https://wwwdev.company.com/account/api/v2/environments/current?
Let me know if I can provide more info.
@StefH commented on GitHub (Apr 28, 2020):
I would expect that using this code:
Any any request, like
https://wwwmock.company.com/anything/other/a/b/cWould call the proxy as:
https://wwwdev.company.com/anything/other/a/b/c?
@adatanasov commented on GitHub (Apr 29, 2020):
Thank you for the quick response!
I've tried that, but it's the same. This is info from the logger:
I believe it's because my WireMock service is hosted under '/account/api' and that part is omitted later from the Url.
@StefH commented on GitHub (Apr 29, 2020):
Just an analyze how the code currently works.
The setup is like:
Post request to

http://{{wm_hostname}}/postPost request to

http://{{wm_hostname}}/post/x/y/zPost request to

http://{{wm_hostname}}/a/b/cThe current logic from WireMock is that only the baseUrl from the ProxyUrl is used, so specifying "http://postman-echo.com/post" or in your case "https://wwwdev.company.com/account/api" does not work.
However I think you are right, and that there is actually wrong logic in WireMock.
So for option 3, the value from
proxyUriWithRequestPathAndQueryshould be set to "http://postman-echo.com/post/a/b/c".What do you think?
@adatanasov commented on GitHub (Apr 29, 2020):
Yep, this should solve my issue.
Also, it shouldn't break any existing apps/logic as you can set a base URL if you need to.
@StefH commented on GitHub (Apr 29, 2020):
Yes it should be backwards compatible.
Proposal:
proxyUrl =
http://postman-echo.com/post, request =http://{{wm_hostname}}/post==> proxyUriWithRequestPathAndQuery =http://postman-echo.com/postproxyUrl =
http://postman-echo.com/post, request =http://{{wm_hostname}}/post/x/y/z==> proxyUriWithRequestPathAndQuery =http://postman-echo.com/post/x/y/zproxyUrl =
http://postman-echo.com, request =http://{{wm_hostname}}/post/x/y/z==> proxyUriWithRequestPathAndQuery =http://postman-echo.com/post/x/y/zproxyUrl =
http://postman-echo.com/other, request =http://{{wm_hostname}}/post/x/y/z==> proxyUriWithRequestPathAndQuery =http://postman-echo.com/other/post/x/y/zCorrect?
@adatanasov commented on GitHub (Apr 29, 2020):
I agree.
@StefH commented on GitHub (Apr 29, 2020):
Can you try MyGet version : WireMock.Net.1.2.6-ci-13251.nupkg
@StefH commented on GitHub (Apr 29, 2020):
https://github.com/WireMock-Net/WireMock.Net/pull/461
@adatanasov commented on GitHub (Apr 29, 2020):
It works as agreed.
Thanks again for the quick reaction :)
@StefH commented on GitHub (Apr 29, 2020):
I'll make a new official release tomorrow.