37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/faraday/adapter/manticore.rb', line 37
def call(env)
super
opts = {}
if env.key? :
opts[:headers] = env[:request_headers]
opts[:headers].reject! {|k, _| k.downcase == "content-length" }
end
body = read_body(env)
opts[:body] = body if body
if req = env[:request]
opts[:request_timeout] = opts[:connect_timeout] = opts[:socket_timeout] = req[:timeout] if req.key?(:timeout)
opts[:connect_timeout] = opts[:socket_timeout] = req[:open_timeout] if req.key?(:open_timeout)
if prx = req[:proxy]
opts[:proxy] = {
:url => prx[:uri].to_s,
:user => prx[:user],
:password => prx[:password]
}
end
end
cl = client(env)
if parallel?(env)
env[:parallel_manager].client = cl
cl = cl.async
end
last_exception = nil
req = cl.send(env[:method].to_s.downcase, env[:url].to_s, opts)
req.on_success do |response|
save_response(env, response.code, response.body || "", response.)
env[:response].finish(env) if parallel?(env)
end
req.on_failure do |err|
case err
when ::Manticore::Timeout
raise TimeoutError, err
when ::Manticore::SocketException, ::Java::JavaUtilConcurrent::ExecutionException
raise ConnectionFailed, err
when ::Manticore::ClientProtocolException
raise Faraday::SSLError, err
else
raise err
end
end
req.call unless parallel?(env)
@app.call env
end
|