From: shugo@... Date: 2016-05-13T09:04:44+00:00 Subject: [ruby-core:75486] [Ruby trunk Feature#12375] Net::HTTP.post Issue #12375 has been updated by Shugo Maeda. Usaku NAKAMURA wrote: > Shugo Maeda wrote: > > * The first argument must be a URI object, but it might be better to accept a String. > > It should accept the hostname and the path parameters, like Net::HTTP.get. Ah, I forgot to consider consistency with Net::HTTP.get. > Of course, to implement it is not so hard, so I believe you will do it before committing the patch :-) It's easy to implement, but I meant that the following code: ``` res = Net::HTTP.post('http://www.example.com/api/search', { "q" => "ruby", "max" => "50" }.to_json, "Content-Type" => "application/json") ``` The Net::HTTP.get style, which is less useful because it can't support HTTPS, will be as follows: ``` res = Net::HTTP.post('www.example.com', '/api/search', { "q" => "ruby", "max" => "50" }.to_json, "Content-Type" => "application/json") ``` It might be possible to support both styles by checking argument numbers and types, but keyword arguments might be better.... ---------------------------------------- Feature #12375: Net::HTTP.post https://bugs.ruby-lang.org/issues/12375#change-58605 * Author: Shugo Maeda * Status: Open * Priority: Normal * Assignee: Yui NARUSE ---------------------------------------- Net::HTTP.post_form is convenient, but it's dedicated to application/x-www-form-urlencoded. Why not provide Net::HTTP.post for other media types? ``` res = Net::HTTP.post(URI('http://www.example.com/api/search'), { "q" => "ruby", "max" => "50" }.to_json, "Content-Type" => "application/json") ``` I've attached a patch, but there are some considerations: * Net::HTTP.post_form supports basic authentication by userinfo in URLs, but Net::HTTP.post doesn't, because it's deprecated by RFC3986. Is it OK? * The first argument must be a URI object, but it might be better to accept a String. * Should methods for other HTTP methods such as Net::HTTP.patch be added? ---Files-------------------------------- net_http_s_post.diff (1.76 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: