I try to evaluate WireMock to mock a third-party service.
When trying to record some calls to the third-party service.
- I am issuing a call to the actual service e.g.
curl -X GET "http://thrdpary.service.com/api/v2/requests/6396ff4eae78da7b0457f283" \
-H "authorization: Bearer mytoken" \
-H "accept: application/json"
I get an expected JSON response
- Then spanning wiremock and running the call via the proxy
java -jar ~/tools/wiremock/wiremock-jre8-standalone-2.35.0.jar --print-all-network-traffic \
--verbose \
--proxy-all https://thrdpary.service.com
- Issuing a call via Wiremock proxy
curl -X GET "http://127.0.0.1:8080/api/v2/requests/6396ff4eae78da7b0457f283" \
-H "authorization: Bearer mytoken" \
-H "accept: application/json"
-H "Content-Type: application/json"
But now I get an HTML response saying "We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue."
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.png"><title>Vade Providers Dashboard</title><link href="/css/chunk-035323b2.7b55ea24.css" rel="prefetch"><link href="/css/chunk-0c985e44.c6590440.css" rel="prefetch"><link href="/css/chunk-0f545a99.1c048926.css" rel="prefetch"><link href="/css/chunk-27ade5d8.d39a8b0b.css" rel="prefetch"><link href="/css/chunk-3aa2de5d.7652751d.css" rel="prefetch"><link href="/css/chunk-53f183f4.cdd3a2dc.css" rel="prefetch"><link href="/css/chunk-544e0368.a5ab1dfb.css" rel="prefetch"><link href="/css/chunk-5a6fde36.e3b2c13a.css" rel="prefetch"><link href="/css/chunk-7de726f3.7d4de787.css" rel="prefetch"><link href="/css/chunk-7f3c0b78.dc211df5.css" rel="prefetch"><link href="/css/chunk-83ce1a9e.f2716e48.css" rel="prefetch"><link href="/css/chunk-8d9970a8.e5638da4.css" rel="prefetch"><link href="/css/chunk-a7c610f8.a3ca4e48.css" rel="prefetch"><link href="/css/chunk-f567c068.c322c04b.css" rel="prefetch"><link href="/css/chunk-f95edb7a.39df20bf.css" rel="prefetch"><link href="/js/chunk-035323b2.fe892de2.js" rel="prefetch"><link href="/js/chunk-0bb2fd9a.63880c1c.js" rel="prefetch"><link href="/js/chunk-0c985e44.226b2fc7.js" rel="prefetch"><link href="/js/chunk-0f545a99.48adf734.js" rel="prefetch"><link href="/js/chunk-2570f1d2.66a8fb23.js" rel="prefetch"><link href="/js/chunk-27ade5d8.217cffc0.js" rel="prefetch"><link href="/js/chunk-2d0be333.daaed458.js" rel="prefetch"><link href="/js/chunk-2d0e97b4.36457cfb.js" rel="prefetch"><link href="/js/chunk-3aa2de5d.bcd8d130.js" rel="prefetch"><link href="/js/chunk-53f183f4.532707bc.js" rel="prefetch"><link href="/js/chunk-544e0368.c447366e.js" rel="prefetch"><link href="/js/chunk-5a6fde36.47c41335.js" rel="prefetch"><link href="/js/chunk-7194670a.a360ec9e.js" rel="prefetch"><link href="/js/chunk-7de726f3.82cb480e.js" rel="prefetch"><link href="/js/chunk-7f3c0b78.06d21415.js" rel="prefetch"><link href="/js/chunk-7facee04.52a8a153.js" rel="prefetch"><link href="/js/chunk-83ce1a9e.da9aae42.js" rel="prefetch"><link href="/js/chunk-8d9970a8.f29483ea.js" rel="prefetch"><link href="/js/chunk-a7c610f8.51d3b72e.js" rel="prefetch"><link href="/js/chunk-f567c068.3e0dacca.js" rel="prefetch"><link href="/js/chunk-f95edb7a.ba5a8579.js" rel="prefetch"><link href="/css/app.8ee4d6fd.css" rel="preload" as="style"><link href="/css/chunk-vendors.0c859e98.css" rel="preload" as="style"><link href="/js/app.6fdc482c.js" rel="preload" as="script"><link href="/js/chunk-vendors.092ff052.js" rel="preload" as="script"><link href="/css/chunk-vendors.0c859e98.css" rel="stylesheet"><link href="/css/app.8ee4d6fd.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="https://kit.fontawesome.com/d788c84bab.js" crossorigin="anonymous"></script><script src="/config.js"></script><script src="/js/chunk-vendors.092ff052.js"></script><script src="/js/app.6fdc482c.js"></script></body></html>
The wiremock log
Response:
HTTP/1.1 200
server: [nginx]
date: [Mon, 12 Dec 2022 13:18:40 GMT]
content-type: [text/html]
content-length: [3191]
last-modified: [Fri, 21 Oct 2022 13:40:12 GMT]
vary: [Accept-Encoding]
etag: ["6352a13c-c77"]
expires: [Mon, 12 Dec 2022 13:18:39 GMT]
cache-control: [no-cache]
accept-ranges: [bytes]
2022-12-12 13:18:40.341 Outgoing bytes: HTTP/1.1 200 OK
Server: nginx
Date: Mon, 12 Dec 2022 13:18:40 GMT
Content-Type: text/html
Last-Modified: Fri, 21 Oct 2022 13:40:12 GMT
Vary: Accept-Encoding
ETag: "6352a13c-c77"
Expires: Mon, 12 Dec 2022 13:18:39 GMT
Cache-Control: no-cache
Accept-Ranges: bytes
Vary: User-Agent
Content-Length: 3191
2022-12-12 13:18:40.341 Outgoing bytes: <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.png"><title>Vade Providers Dashboard</title><link href="/css/chunk-035323b2.7b55ea24.css" rel="prefetch"><link href="/css/chunk-0c985e44.c6590440.css" rel="prefetch"><link href="/css/chunk-0f545a99.1c048926.css" rel="prefetch"><link href="/css/chunk-27ade5d8.d39a8b0b.css" rel="prefetch"><link href="/css/chunk-3aa2de5d.7652751d.css" rel="prefetch"><link href="/css/chunk-53f183f4.cdd3a2dc.css" rel="prefetch"><link href="/css/chunk-544e0368.a5ab1dfb.css" rel="prefetch"><link href="/css/chunk-5a6fde36.e3b2c13a.css" rel="prefetch"><link href="/css/chunk-7de726f3.7d4de787.css" rel="prefetch"><link href="/css/chunk-7f3c0b78.dc211df5.css" rel="prefetch"><link href="/css/chunk-83ce1a9e.f2716e48.css" rel="prefetch"><link href="/css/chunk-8d9970a8.e5638da4.css" rel="prefetch"><link href="/css/chunk-a7c610f8.a3ca4e48.css" rel="prefetch"><link href="/css/chunk-f567c068.c322c04b.css" rel="prefetch"><link href="/css/chunk-f95edb7a.39df20bf.css" rel="prefetch"><link href="/js/chunk-035323b2.fe892de2.js" rel="prefetch"><link href="/js/chunk-0bb2fd9a.63880c1c.js" rel="prefetch"><link href="/js/chunk-0c985e44.226b2fc7.js" rel="prefetch"><link href="/js/chunk-0f545a99.48adf734.js" rel="prefetch"><link href="/js/chunk-2570f1d2.66a8fb23.js" rel="prefetch"><link href="/js/chunk-27ade5d8.217cffc0.js" rel="prefetch"><link href="/js/chunk-2d0be333.daaed458.js" rel="prefetch"><link href="/js/chunk-2d0e97b4.36457cfb.js" rel="prefetch"><link href="/js/chunk-3aa2de5d.bcd8d130.js" rel="prefetch"><link href="/js/chunk-53f183f4.532707bc.js" rel="prefetch"><link href="/js/chunk-544e0368.c447366e.js" rel="prefetch"><link href="/js/chunk-5a6fde36.47c41335.js" rel="prefetch"><link href="/js/chunk-7194670a.a360ec9e.js" rel="prefetch"><link href="/js/chunk-7de726f3.82cb480e.js" rel="prefetch"><link href="/js/chunk-7f3c0b78.06d21415.js" rel="prefetch"><link href="/js/chunk-7facee04.52a8a153.js" rel="prefetch"><link href="/js/chunk-83ce1a9e.da9aae42.js" rel="prefetch"><link href="/js/chunk-8d9970a8.f29483ea.js" rel="prefetch"><link href="/js/chunk-a7c610f8.51d3b72e.js" rel="prefetch"><link href="/js/chunk-f567c068.3e0dacca.js" rel="prefetch"><link href="/js/chunk-f95edb7a.ba5a8579.js" rel="prefetch"><link href="/css/app.8ee4d6fd.css" rel="preload" as="style"><link href="/css/chunk-vendors.0c859e98.css" rel="preload" as="style"><link href="/js/app.6fdc482c.js" rel="preload" as="script"><link href="/js/chunk-vendors.092ff052.js" rel="preload" as="script"><link href="/css/chunk-vendors.0c859e98.css" rel="stylesheet"><link href="/css/app.8ee4d6fd.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="https://kit.fontawesome.com/d788c84bab.js" crossorigin="anonymous"></script><script src="/config.js"></script><script src="/js/chunk-vendors.092ff052.js"></script><script src="/js/app.6fdc482c.js"></script></body></html>
2022-12-12 13:18:40.349 Closed Socket[unconnected]
Any ideas on how to solve this?
My problem was misconfiguration (thank you @Ourbotus for giving me the solution).
The messages
This is due to the fact I was proxying the portal which is a human-readable front-end and not the API.
I needed to point to api.thridparty.service.com and not to thrdipary.service.com.
The correct command in my case to run Wiremock as standalone with proxy should be
BTW on your local machine, you can use HTTP to proxy a remote HTTPS and it works.