Skip to content

Commit 44c9c73

Browse files
committed
Support rewriting the request_url in the HttpClient when no Host header is provided
1 parent afcd09e commit 44c9c73

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

lib/shopify_api/clients/http_client.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,13 @@ def request(request, response_as_struct: false)
3939
headers = @headers
4040
headers["Content-Type"] = T.must(request.body_type) if request.body_type
4141
headers = headers.merge(T.must(request.extra_headers)) if request.extra_headers
42-
if headers["Host"].include?(".my.shop.dev")
43-
headers["x-forwarded-host"] = headers["Host"]
42+
43+
parsed_uri = URI(request_url(request))
44+
45+
if headers["Host"]&.include?(".my.shop.dev") || parsed_uri.host&.include?(".my.shop.dev")
46+
headers["x-forwarded-host"] = headers["Host"] || parsed_uri.host
4447
headers["Host"] = "app.shop.dev"
48+
parsed_uri.host = "app.shop.dev"
4549
end
4650

4751
tries = 0
@@ -50,7 +54,7 @@ def request(request, response_as_struct: false)
5054
tries += 1
5155
res = T.cast(HTTParty.send(
5256
request.http_method,
53-
request_url(request),
57+
parsed_uri.to_s,
5458
headers: headers,
5559
query: request.query,
5660
body: request.body.class == Hash ? T.unsafe(request.body).to_json : request.body,

0 commit comments

Comments
 (0)