chansen / p5-http-tiny

Tiny HTTP Client
https://metacpan.org/dist/HTTP-Tiny
53 stars 52 forks source link

Throw an error if someone passes a `headers` option to the constructor #142

Open tobyink opened 4 years ago

tobyink commented 4 years ago

request (and get, post, etc) accepts an option called headers. Its return hashref also includes a key called headers.

But the constructor accepts an option called default_headers. I accidentally used headers and was confused for at least an hour about why the API that I was calling kept returning 403 Forbidden. (Didn't help that it was behind Cloudflare, so I thought they were the ones blocking me.)

It would be nice if HTTP::Tiny->new( headers => \%h ) threw an error or at least a warning. Either the constructor could complain about all unrecognized options, or just headers. Either way.

xdg commented 3 years ago

If we add a warning, it probably makes sense to warn about any unknown attribute.

guest20 commented 1 year ago

If we're doing a wish list for being warned when you put it in the wrong place, I'd like warnings for unknown keys in \%options in $http->request($method, $url, \%options);, just to save a hypothetical developer 90 minutes trying to figure out why their If-Modified-Since header doesn't seem to be going anywhere...