Закрытый поток (IO :: Error) с HTTP :: Client.get ("https ...") - PullRequest
1 голос
/ 25 марта 2020

Я немного запутался с двумя кодами.

    uri = URI.parse("https://api.exchangeratesapi.io")
    client = HTTP::Client.new(uri)
    client.get("/latest?base=EUR") do |response|
      p response.body_io.gets
    end

Работает как положено, но

    response = HTTP::Client.get("https://api.exchangeratesapi.io/latest?base=EUR")
    p response

не удалось с

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

Я использую Crystal 0,33. Есть идеи, что может исправить второй код?

1 Ответ

1 голос
/ 25 марта 2020

В журнале я вижу lib/webmock/src/webmock/core_ext.cr (которого обычно не должно быть), похоже, что его влияние вызывает проблему, и код в отдельности просто сработает.

...