Server IP : 111.118.215.189 / Your IP : 216.73.216.162 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/local/share/gems/gems/httpclient-2.8.3/sample/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
require 'uri' require 'httpclient' class DAV attr_reader :headers def initialize(uri = nil) @uri = nil @headers = {} open(uri) if uri proxy = ENV['HTTP_PROXY'] || ENV['http_proxy'] || nil @client = HTTPClient.new(proxy) end def open(uri) @uri = if uri.is_a?(URI) uri else URI.parse(uri) end end def set_basic_auth(user_id, passwd) @client.set_basic_auth(@uri, user_id, passwd) end # TODO: propget/propset support def propfind(target) target_uri = @uri + target res = @client.propfind(target_uri) res.body.content end def get(target, local = nil) local ||= target target_uri = @uri + target if FileTest.exist?(local) raise RuntimeError.new("File #{ local } exists.") end f = File.open(local, "wb") res = @client.get(target_uri, nil, @headers) do |data| f << data end f.close STDOUT.puts("#{ res.header['content-length'][0] } bytes saved to file #{ target }.") end def debug_dev=(dev) @client.debug_dev = dev end def get_content(target) target_uri = @uri + target @client.get_content(target_uri, nil, @headers) end def put_content(target, content) target_uri = @uri + target res = @client.put(target_uri, content, @headers) if res.status < 200 or res.status >= 300 raise "HTTP PUT failed: #{res.inspect}" end end class Mock attr_reader :headers def initialize(uri = nil) @uri = nil @headers = {} open(uri) if uri @cache = {} end def open(uri) @uri = uri.is_a?(URI) ? uri : URI.parse(uri) end def set_basic_auth(user_id, passwd) # ignore end def propfind(target) # not found nil end def get(target, local = nil) # ignore end def get_content(target) @cache[target] end def put_content(target, content) @cache[target] = content nil end end end