Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1811

Show
Ignore:
Timestamp:
05/26/07 11:25:22 (2 years ago)
Author:
nahi
Message:
  • netHttpClient + test_loopback_response support. closes #181.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/netHttpClient.rb

    r1743 r1811  
    3030  attr_accessor :send_timeout           # ignored for now. 
    3131  attr_accessor :receive_timeout 
     32  attr_reader :test_loopback_response 
    3233 
    3334  def initialize(proxy = nil, agent = nil) 
     
    3536    @agent = agent 
    3637    @debug_dev = nil 
     38    @test_loopback_response = [] 
    3739    @session_manager = SessionManager.new 
    3840    @no_proxy = @ssl_config = @protocol_version = nil 
    3941    @connect_timeout = @send_timeout = @receive_timeout = nil 
    40   end 
    41  
    42   def test_loopback_response 
    43     raise NotImplementedError.new("not supported for now") 
    4442  end 
    4543   
     
    8987 
    9088  def get_content(url, header = {}) 
     89    if str = @test_loopback_response.shift 
     90      return str 
     91    end 
    9192    unless url.is_a?(URI) 
    9293      url = URI.parse(url) 
     
    103104 
    104105  def post_redirect(url, req_body, header, redirect_count) 
     106    if str = @test_loopback_response.shift 
     107      if @debug_dev 
     108        @debug_dev << "= Request\n\n" 
     109        @debug_dev << req_body 
     110        @debug_dev << "\n\n= Response\n\n" 
     111        @debug_dev << str 
     112      end 
     113      status = 200 
     114      reason = nil 
     115      contenttype = 'text/xml' 
     116      content = str 
     117      return Response.new(status, reason, contenttype, content) 
     118      return str 
     119    end 
    105120    unless url.is_a?(URI) 
    106121      url = URI.parse(url) 
     
    109124    extra['User-Agent'] = @agent if @agent 
    110125    res = start(url) { |http| 
     126      if @debug_dev 
     127        @debug_dev << "= Request\n\n" 
     128        @debug_dev << req_body << "\n" 
     129      end 
    111130      http.post(url.request_uri, req_body, extra) 
    112131    } 
     
    120139      end 
    121140    else 
    122       Response.new(res) 
     141      Response.from_httpresponse(res) 
    123142    end 
    124143  end 
     
    131150      worker.finish 
    132151    } 
    133     @debug_dev << response.body if @debug_dev 
     152    if @debug_dev 
     153      @debug_dev << "\n\n= Response\n\n" 
     154      @debug_dev << response.body << "\n" 
     155    end 
    134156    response 
    135157  end 
     
    187209 
    188210  class Response 
    189     attr_reader :content 
    190211    attr_reader :status 
    191212    attr_reader :reason 
    192213    attr_reader :contenttype 
    193  
    194     def initialize(res) 
    195       @status = res.code.to_i 
    196       @reason = res.message 
    197       @contenttype = res['content-type'] 
    198       @content = res.body 
     214    attr_reader :content 
     215 
     216    def initialize(status, reason, contenttype, content) 
     217      @status = status 
     218      @reason = reason 
     219      @contenttype = contenttype 
     220      @content = content 
     221    end 
     222 
     223    def self.from_httpresponse(res) 
     224      status = res.code.to_i 
     225      reason = res.message 
     226      contenttype = res['content-type'] 
     227      content = res.body 
     228      new(status, reason, contenttype, content) 
    199229    end 
    200230  end