зеркало из https://github.com/github/ruby.git
* lib/net/http.rb (Net::HTTP.post): new convenience method to send a POST request.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
8ec6fcb2f6
Коммит
88243c5303
|
@ -1,3 +1,8 @@
|
||||||
|
Sat Nov 5 23:30:41 2016 Shugo Maeda <shugo@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/net/http.rb (Net::HTTP.post): new convenience method to send
|
||||||
|
a POST request.
|
||||||
|
|
||||||
Sat Nov 5 23:03:54 2016 NARUSE, Yui <naruse@ruby-lang.org>
|
Sat Nov 5 23:03:54 2016 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
* lib/net/http.rb (transport_request): other than HTTPContinue
|
* lib/net/http.rb (transport_request): other than HTTPContinue
|
||||||
|
|
3
NEWS
3
NEWS
|
@ -217,6 +217,9 @@ with all sufficient information, see the ChangeLog file or Redmine
|
||||||
|
|
||||||
* Don't allow , as a separator [Bug #12791]
|
* Don't allow , as a separator [Bug #12791]
|
||||||
|
|
||||||
|
* Net::HTTP
|
||||||
|
* New method: Net::HTTP.post [Feature #12375]
|
||||||
|
|
||||||
=== Compatibility issues (excluding feature bug fixes)
|
=== Compatibility issues (excluding feature bug fixes)
|
||||||
|
|
||||||
* Array#sum and Enumerable#sum are implemented. [Feature #12217]
|
* Array#sum and Enumerable#sum are implemented. [Feature #12217]
|
||||||
|
|
|
@ -489,6 +489,24 @@ module Net #:nodoc:
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Posts data to the specified URI object.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# require 'net/http'
|
||||||
|
# require 'uri'
|
||||||
|
#
|
||||||
|
# Net::HTTP.post URI('http://www.example.com/api/search'),
|
||||||
|
# { "q" => "ruby", "max" => "50" }.to_json,
|
||||||
|
# "Content-Type" => "application/json"
|
||||||
|
#
|
||||||
|
def HTTP.post(url, data, header = nil)
|
||||||
|
start(url.hostname, url.port,
|
||||||
|
:use_ssl => url.scheme == 'https' ) {|http|
|
||||||
|
http.post(url.path, data, header)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
# Posts HTML form data to the specified URI object.
|
# Posts HTML form data to the specified URI object.
|
||||||
# The form data must be provided as a Hash mapping from String to String.
|
# The form data must be provided as a Hash mapping from String to String.
|
||||||
# Example:
|
# Example:
|
||||||
|
|
|
@ -384,6 +384,22 @@ module TestNetHTTP_version_1_1_methods
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_s_post
|
||||||
|
url = "http://#{config('host')}:#{config('port')}/"
|
||||||
|
res = Net::HTTP.post(
|
||||||
|
URI.parse(url),
|
||||||
|
"a=x")
|
||||||
|
assert_equal "application/x-www-form-urlencoded", res["Content-Type"]
|
||||||
|
assert_equal "a=x", res.body
|
||||||
|
|
||||||
|
res = Net::HTTP.post(
|
||||||
|
URI.parse(url),
|
||||||
|
"hello world",
|
||||||
|
"Content-Type" => "text/plain; charset=US-ASCII")
|
||||||
|
assert_equal "text/plain; charset=US-ASCII", res["Content-Type"]
|
||||||
|
assert_equal "hello world", res.body
|
||||||
|
end
|
||||||
|
|
||||||
def test_s_post_form
|
def test_s_post_form
|
||||||
url = "http://#{config('host')}:#{config('port')}/"
|
url = "http://#{config('host')}:#{config('port')}/"
|
||||||
res = Net::HTTP.post_form(
|
res = Net::HTTP.post_form(
|
||||||
|
|
Загрузка…
Ссылка в новой задаче