http icon indicating copy to clipboard operation
http copied to clipboard

HTTP (The Gem! a.k.a. http.rb) - a fast Ruby HTTP client with a chainable API, streaming support, and timeouts

Results 107 http issues
Sort by recently updated
recently updated
newest added

```ruby logger = Logger.new(STDERR) http_headers = { 'TEST_ONE' => 1, 'TEST.TWO' => 2 } HTTP.headers(http_headers) .use(logging: {logger: logger}) .use(:auto_inflate).headers('Accept-Encoding' => 'gzip') .post('https://example.com') ``` produces this: ``` I, [2020-03-12T15:51:28.560383 #1] INFO...

Improvement

# New report: Http.rb does not currently support digest authentication out of the box, e.g. https://www.ietf.org/rfc/rfc2617.txt It would be a really welcome addition as the current workaround (in comment 4)...

Feature

I'm using HTTP with Savon and I'm getting intermittent timeout errors. > HTTP::TimeoutError: Read timed out after 0.25 seconds I can assure you I'm not setting the read_timeout to 0.25...

I don't know if this was by design, but it took me some figuring out on how to explicitly set proxy. However, for portability, I'd automatically set proxy from the...

This is a discussion of API that overtakes exisitng PRs (#512 and #493) in order to plan and clarify API that needs to be implemented. First of all I propose...

In some rare cases the method `def content_length` raises `TypeError` instead of `nil` or `Fixnum`. For example, you can check the following scenario: ## Reproduction code ```ruby url = "https://imagery.pragprog.com/products/595/tpp20.jpg"...

Bug

``` HTTP.get(nil) HTTP::Request::UnsupportedSchemeError (unknown scheme: ) HTTP.get('') HTTP::Request::UnsupportedSchemeError (unknown scheme: ) HTTP.get('/') HTTP::Request::UnsupportedSchemeError (unknown scheme: ) HTTP.get(':') Addressable::URI::InvalidURIError (Cannot assemble URI string with ambiguous path: ':') ``` Ideally it should...

Improvement

I believe at the moment it's only possibly to either specify a per operation timeout or a global timeout. Would be good if it were possible to combine both timeouts,...

One of my sidekiq workers got stuck on the following log line (I use httplog): ``` [httplog] Connecting: www.coinpayments.net:443 ``` It was stuck for several hours until I restarted it....

```ruby client = HTTP.persistent("https://example.com").follow client.get(some_url) ``` In case `some_url` redirects to some domain other than example.com, we get the `HTTP::StateError`: `Persistence is enabled for https://example.com, but we got https://some-other-domain.com`.