The content-length header
The content-type header
The content-length header
Sets the content-length header to len
The content-type header
Sets the content-type header to type
Redirects to url with a WEBrick::HTTPStatus::Redirect status.
Example:
res.set_redirect WEBrick::HTTPStatus::TemporaryRedirect
Similar to XMLRPC::Client#multicall, however can be called concurrently and use a new connection for each request. In contrast to the corresponding method without the _async suffix, which use connect-alive (one connection for all requests).
Note, that you have to use Thread to call these methods concurrently. The following example calls two methods concurrently:
Thread.new { p client.multicall_async("michael.add", 4, 5) } Thread.new { p client.multicall_async("michael.div", 7, 9) }
Same as XMLRPC::Client#multicall2, but can be called concurrently.
See also XMLRPC::Client#multicall_async
Return a Time object of the date/time which represents self. If the @year is below 1970, this method returns nil, because Time cannot handle years below 1970.
The timezone used is GMT.
Adds aBlock to the list of handlers, with name as the name of the method.
Parameters signature and help are used by the Introspection method if specified, where signature is either an Array containing strings each representing a type of it’s signature (the first is the return value) or an Array of Arrays if the method has multiple signatures.
Value type-names are “int, boolean, double, string, dateTime.iso8601, base64, array, struct”.
Parameter help is a String with information about how to call this method etc.
When a method fails, it can tell the client by throwing an XMLRPC::FaultException like in this example:
s.add_handler("michael.div") do |a,b| if b == 0 raise XMLRPC::FaultException.new(1, "division by zero") else a / b end end
In the case of b==0 the client gets an object back of type XMLRPC::FaultException that has a faultCode and faultString field.
This is the second form of ((<add_handler|XMLRPC::BasicServer#add_handler>)). To add an object write:
server.add_handler("michael", MyHandlerClass.new)
All public methods of MyHandlerClass are accessible to the XML-RPC clients by michael."name of method". This is where the class_delim in XMLRPC::BasicServer.new plays it’s role, a XML-RPC method-name is defined by prefix + class_delim + "name of method".
The third form of +add_handler is to use XMLRPC::Service::Interface to generate an object, which represents an interface (with signature and help text) for a handler class.
The interface parameter must be an instance of XMLRPC::Service::Interface. Adds all methods of obj which are defined in the interface to the server.
This is the recommended way of adding services to a server!
Adds the multi-call handler "system.multicall".
Returns true, if the arity of obj matches n_args
Calls the given block once for each key, value pair in the database.
Returns self.
Returns the number of threads waiting on the queue.
Returns the number of threads waiting on the queue.
Returns the discarded bytes when Encoding::InvalidByteSequenceError occurs.
ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1") begin ec.convert("abc\xA1\xFFdef") rescue Encoding::InvalidByteSequenceError p $! #=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "\xFF" on EUC-JP> puts $!.error_bytes.dump #=> "\xA1" puts $!.readagain_bytes.dump #=> "\xFF" end
Returns true if the invalid byte sequence error is caused by premature end of string.
ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1") begin ec.convert("abc\xA1z") rescue Encoding::InvalidByteSequenceError p $! #=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "z" on EUC-JP> p $!.incomplete_input? #=> false end begin ec.convert("abc\xA1") ec.finish rescue Encoding::InvalidByteSequenceError p $! #=> #<Encoding::InvalidByteSequenceError: incomplete "\xA1" on EUC-JP> p $!.incomplete_input? #=> true end