You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
require "webmock"
WebMock.allow_net_connect = true
response = HTTP::Client.get("https://api.exchangeratesapi.io/latest?base=EUR")
p response
I got exception
Closed stream (IO::Error)
from /usr/share/crystal/src/io.cr:128:5 in 'check_open'
from /usr/share/crystal/src/io/buffered.cr:99:5 in 'peek'
from /usr/share/crystal/src/io.cr:632:37 in 'gets'
from /usr/share/crystal/src/io.cr:591:5 in 'gets'
from /usr/share/crystal/src/io.cr:814:5 in 'read_line:chomp'
from /usr/share/crystal/src/http/content.cr:205:7 in 'read_chunk_size'
from /usr/share/crystal/src/http/content.cr:187:26 in 'next_chunk'
from /usr/share/crystal/src/http/content.cr:120:7 in 'read'
from /usr/share/crystal/src/io.cr:554:29 in 'gets_to_end'
from /usr/share/crystal/src/http/client/response.cr:81:15 in 'consume_body_io'
from lib/webmock/src/webmock/core_ext.cr:12:7 in 'exec_internal'
from /usr/share/crystal/src/http/client.cr:576:5 in 'exec'
from /usr/share/crystal/src/http/client.cr:698:5 in 'exec'
from /usr/share/crystal/src/http/client.cr:730:7 in 'exec'
from /usr/share/crystal/src/http/client.cr:402:3 in ‚get
I just ran in to this as well. Any Lucky app using this shard, and LuckyFlow will hit this because LuckyFlow reaches out to Google to fetch chromedriver.
As a general advice, I'd recomend against intrusive mocking mechanisms like webmock. If you can avoid it, don't use it. It's not always easy, of course.
But often it's simply possible to make a HTTP::Client instance configurable, so you can hook it up directly to a mock backend.
Webmock breaks
I got exception
Without webmock all works as expected.
P.S. Original question https://stackoverflow.com/questions/60847886/closed-stream-ioerror-with-httpclient-gethttps
The text was updated successfully, but these errors were encountered: