* lib/net/http.rb (Net::HTTP#set_form_data):
use URI.encode_www_form for application/x-www-form-urlencoded. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1cdcd40ec8
commit
f5bdc774fd
@ -1,3 +1,8 @@
|
||||
Thu Dec 2 10:39:39 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* lib/net/http.rb (Net::HTTP#set_form_data):
|
||||
use URI.encode_www_form for application/x-www-form-urlencoded.
|
||||
|
||||
Thu Dec 2 10:38:40 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* ext/extmk.rb: remove $makeflags.defined?, it should be $mflags.
|
||||
|
@ -1784,22 +1784,14 @@ module Net #:nodoc:
|
||||
# http.set_form_data({"q" => "ruby", "lang" => "en"}, ';')
|
||||
#
|
||||
def set_form_data(params, sep = '&')
|
||||
self.body = params.map {|k, v| encode_kvpair(k, v) }.flatten.join(sep)
|
||||
query = URI.encode_www_form(params)
|
||||
query.gsub!(/&/, sep) if sep != '&'
|
||||
self.body = query
|
||||
self.content_type = 'application/x-www-form-urlencoded'
|
||||
end
|
||||
|
||||
alias form_data= set_form_data
|
||||
|
||||
def encode_kvpair(k, vs)
|
||||
Array(vs).map {|v| "#{urlencode(k.to_s)}=#{urlencode(v.to_s)}" }
|
||||
end
|
||||
private :encode_kvpair
|
||||
|
||||
def urlencode(str)
|
||||
str.dup.force_encoding('ASCII-8BIT').gsub(/[^a-zA-Z0-9_\.\-]/){'%%%02x' % $&.ord}
|
||||
end
|
||||
private :urlencode
|
||||
|
||||
# Set the Authorization: header for "Basic" authorization.
|
||||
def basic_auth(account, password)
|
||||
@header['authorization'] = [basic_encode(account, password)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user