mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
o protocol.rb: ProtocolError can take data
o http.rb: raise exception with response git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
eb4c6c241d
commit
fdd3d8551f
2 changed files with 31 additions and 4 deletions
|
@ -54,6 +54,20 @@ module Net
|
||||||
|
|
||||||
If called as iterator, give a part String of entity body.
|
If called as iterator, give a part String of entity body.
|
||||||
|
|
||||||
|
Note:
|
||||||
|
If status is not 2xx(success), ProtocolError exception is
|
||||||
|
raised. At that time, you can get Response object from
|
||||||
|
execption object. (same in head/post)
|
||||||
|
|
||||||
|
ex.
|
||||||
|
|
||||||
|
begin
|
||||||
|
head, body = http.get(...)
|
||||||
|
rescue ProtoRetriableError
|
||||||
|
response = $!.data
|
||||||
|
...
|
||||||
|
end
|
||||||
|
|
||||||
: head( path, header = nil )
|
: head( path, header = nil )
|
||||||
get only header from "path" on connecting host.
|
get only header from "path" on connecting host.
|
||||||
"header" is a Hash like { 'Accept' => '*/*', ... }.
|
"header" is a Hash like { 'Accept' => '*/*', ... }.
|
||||||
|
@ -375,7 +389,9 @@ All "key" is case-insensitive.
|
||||||
end
|
end
|
||||||
|
|
||||||
def value
|
def value
|
||||||
error! unless SuccessCode === self
|
unless SuccessCode === self then
|
||||||
|
error! self
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -68,7 +68,7 @@ Object
|
||||||
|
|
||||||
class Protocol
|
class Protocol
|
||||||
|
|
||||||
Version = '1.1.20'
|
Version = '1.1.21'
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
|
|
||||||
|
@ -295,8 +295,8 @@ Object
|
||||||
attr_reader :code_type, :code, :message
|
attr_reader :code_type, :code, :message
|
||||||
alias msg message
|
alias msg message
|
||||||
|
|
||||||
def error!
|
def error!( data = nil )
|
||||||
raise @code_type.error_type, @code + ' ' + Net.quote(@message)
|
raise code_type.error_type.new( code + ' ' + Net.quote(msg), data )
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -312,6 +312,17 @@ Object
|
||||||
class ProtoRetriableError < ProtocolError; end
|
class ProtoRetriableError < ProtocolError; end
|
||||||
ProtocRetryError = ProtoRetriableError
|
ProtocRetryError = ProtoRetriableError
|
||||||
|
|
||||||
|
class ProtocolError
|
||||||
|
|
||||||
|
def initialize( msg, data )
|
||||||
|
super msg
|
||||||
|
@data = data
|
||||||
|
end
|
||||||
|
|
||||||
|
attr :data
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
class Code
|
class Code
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue