rb-net_http-client 1.1.5 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/client/client.rb +11 -4
- data/lib/client/ext.rb +14 -6
- data/lib/core/utilities.rb +11 -11
- data/lib/request/request.rb +9 -7
- data/lib/response/response.rb +32 -42
- data/lib/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b228d13177b1a537598d3c2c47da13fc2575d4e9237f399f8bd4c832c10fd5a
|
4
|
+
data.tar.gz: 692ec538534c4d7f7cb6da96415a878646a7fd8f06e15226a06ea6ffd817def2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4d311ce8705c1bfce6167f06020088aced267cd23d91861a08649f1753fbd2aae5592829e359217b12beefc2ca9e9ff43ca99498f517ce7b2521c3b15755a03
|
7
|
+
data.tar.gz: 7a3960a8c40b07f89ef7c0ffc81241a80a224e95f587f65de9a0764e6b8279a8d3c4d9a2679e7bdc4623a66e1880d6188a0af48d9896acffaf2acee0f766c1db
|
data/lib/client/client.rb
CHANGED
@@ -18,6 +18,7 @@ module NetHTTP
|
|
18
18
|
:pkcs12,
|
19
19
|
:pkcs12_file,
|
20
20
|
:pkcs12_passphrase,
|
21
|
+
:proxy_from_env,
|
21
22
|
:proxy_uri,
|
22
23
|
:proxy_url,
|
23
24
|
:query,
|
@@ -39,15 +40,20 @@ module NetHTTP
|
|
39
40
|
end
|
40
41
|
|
41
42
|
send('uri=', opts)
|
43
|
+
send('proxy_uri=', opts)
|
42
44
|
send('client=', opts)
|
43
45
|
end
|
44
46
|
|
45
47
|
def client=(opts = {})
|
46
|
-
|
48
|
+
if proxy_uri
|
49
|
+
@client = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port).new(uri.host, uri.port)
|
50
|
+
else
|
51
|
+
@client = Net::HTTP.new(uri.host, uri.port)
|
52
|
+
end
|
47
53
|
|
48
|
-
send('
|
49
|
-
send('open_timeout=', (opts[:open_timeout]
|
50
|
-
send('read_timeout=', (opts[:read_timeout]
|
54
|
+
send('proxy_from_env=', opts[:proxy_from_env])
|
55
|
+
send('open_timeout=', (opts[:open_timeout] || 60))
|
56
|
+
send('read_timeout=', (opts[:read_timeout] || 60))
|
51
57
|
send('use_ssl=', opts[:use_ssl], uri.scheme)
|
52
58
|
send('ssl_path=', opts[:ssl_path])
|
53
59
|
send('pkcs12_file=', opts[:pkcs12_file])
|
@@ -58,6 +64,7 @@ module NetHTTP
|
|
58
64
|
send('ca_file=', opts[:ca_file])
|
59
65
|
send('verify_mode=', opts[:verify_mode])
|
60
66
|
|
67
|
+
@client.proxy_from_env = proxy_from_env
|
61
68
|
@client.open_timeout = open_timeout
|
62
69
|
@client.read_timeout = read_timeout
|
63
70
|
@client.use_ssl = use_ssl
|
data/lib/client/ext.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module NetHTTP
|
4
4
|
class Client
|
5
5
|
def proxy_uri=(opts = {})
|
6
|
-
proxy_uri = opts[:proxy_uri]
|
6
|
+
proxy_uri = opts[:proxy_uri] || opts[:proxy_url]
|
7
7
|
|
8
8
|
begin
|
9
9
|
if proxy_uri.to_s.empty? == false
|
@@ -21,14 +21,14 @@ module NetHTTP
|
|
21
21
|
)
|
22
22
|
)
|
23
23
|
end
|
24
|
-
rescue RuntimeError =>
|
25
|
-
logger.debug(
|
24
|
+
rescue RuntimeError => err
|
25
|
+
logger.debug(err)
|
26
26
|
@proxy_uri = nil
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def uri=(opts = {})
|
31
|
-
uri = opts[:uri]
|
31
|
+
uri = opts[:uri] || opts[:url]
|
32
32
|
begin
|
33
33
|
if uri.to_s.empty? == false
|
34
34
|
@uri = Core::Utilities.parse_uri(uri)
|
@@ -45,8 +45,8 @@ module NetHTTP
|
|
45
45
|
)
|
46
46
|
)
|
47
47
|
end
|
48
|
-
rescue RuntimeError =>
|
49
|
-
logger.debug(
|
48
|
+
rescue RuntimeError => err
|
49
|
+
logger.debug(err)
|
50
50
|
@uri = nil
|
51
51
|
end
|
52
52
|
end
|
@@ -109,6 +109,14 @@ module NetHTTP
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
112
|
+
def proxy_from_env=(proxy_from_env)
|
113
|
+
if proxy_from_env == true
|
114
|
+
@proxy_from_env = true
|
115
|
+
else
|
116
|
+
@proxy_from_env = false
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
112
120
|
def read_timeout=(read_timeout)
|
113
121
|
@read_timeout = read_timeout.to_s.to_i
|
114
122
|
end
|
data/lib/core/utilities.rb
CHANGED
@@ -221,8 +221,8 @@ module NetHTTP
|
|
221
221
|
format: 'snake',
|
222
222
|
type: type.downcase
|
223
223
|
)
|
224
|
-
rescue RuntimeError =>
|
225
|
-
raise
|
224
|
+
rescue RuntimeError => err
|
225
|
+
raise err
|
226
226
|
end
|
227
227
|
end
|
228
228
|
|
@@ -245,8 +245,8 @@ module NetHTTP
|
|
245
245
|
format: 'snake',
|
246
246
|
type: type.downcase
|
247
247
|
)
|
248
|
-
rescue RuntimeError =>
|
249
|
-
raise
|
248
|
+
rescue RuntimeError => err
|
249
|
+
raise err
|
250
250
|
end
|
251
251
|
end
|
252
252
|
|
@@ -289,8 +289,8 @@ module NetHTTP
|
|
289
289
|
format: 'snake',
|
290
290
|
type: type.downcase
|
291
291
|
)
|
292
|
-
rescue RuntimeError =>
|
293
|
-
raise
|
292
|
+
rescue RuntimeError => err
|
293
|
+
raise err
|
294
294
|
end
|
295
295
|
end
|
296
296
|
|
@@ -300,13 +300,13 @@ module NetHTTP
|
|
300
300
|
return false if json_doc.empty?
|
301
301
|
|
302
302
|
JSON.parse(json_doc)
|
303
|
-
rescue JSON::ParserError =>
|
303
|
+
rescue JSON::ParserError => err
|
304
304
|
if logger.nil? || logger.to_s.empty?
|
305
305
|
puts 'WARNING - JSON syntax / parsing errors detected:'
|
306
|
-
puts
|
306
|
+
puts err
|
307
307
|
else
|
308
308
|
logger.debug('WARNING - JSON syntax / parsing errors detected:')
|
309
|
-
logger.debug(
|
309
|
+
logger.debug(err)
|
310
310
|
end
|
311
311
|
return false
|
312
312
|
end
|
@@ -362,8 +362,8 @@ module NetHTTP
|
|
362
362
|
end
|
363
363
|
return true
|
364
364
|
end
|
365
|
-
rescue RuntimeError =>
|
366
|
-
raise
|
365
|
+
rescue RuntimeError => err
|
366
|
+
raise err
|
367
367
|
end
|
368
368
|
|
369
369
|
true
|
data/lib/request/request.rb
CHANGED
@@ -41,6 +41,8 @@ module NetHTTP
|
|
41
41
|
logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
|
42
42
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
43
43
|
logger.debug('Request Path => ' + path)
|
44
|
+
logger.debug('Request Headers =>')
|
45
|
+
logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
|
44
46
|
NetHTTP::Response.new(
|
45
47
|
response: client.delete(
|
46
48
|
path
|
@@ -65,7 +67,7 @@ module NetHTTP
|
|
65
67
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
66
68
|
logger.debug('Request Path => ' + path)
|
67
69
|
logger.debug('Request Headers =>')
|
68
|
-
logger.debug(request_opts[:headers])
|
70
|
+
logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
|
69
71
|
NetHTTP::Response.new(
|
70
72
|
response: client.get(
|
71
73
|
path,
|
@@ -91,7 +93,7 @@ module NetHTTP
|
|
91
93
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
92
94
|
logger.debug('Request Path => ' + path)
|
93
95
|
logger.debug('Request Headers =>')
|
94
|
-
logger.debug(request_opts[:headers])
|
96
|
+
logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
|
95
97
|
logger.debug('Request Body =>')
|
96
98
|
logger.debug(request_opts[:body])
|
97
99
|
NetHTTP::Response.new(
|
@@ -120,7 +122,7 @@ module NetHTTP
|
|
120
122
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
121
123
|
logger.debug('Request Path => ' + path)
|
122
124
|
logger.debug('Request Headers =>')
|
123
|
-
logger.debug(request_opts[:headers])
|
125
|
+
logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
|
124
126
|
logger.debug('Request Body =>')
|
125
127
|
logger.debug(URI.encode_www_form(request_opts[:body]))
|
126
128
|
NetHTTP::Response.new(
|
@@ -151,7 +153,7 @@ module NetHTTP
|
|
151
153
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
152
154
|
logger.debug('Request Path => ' + path)
|
153
155
|
logger.debug('Request Headers =>')
|
154
|
-
logger.debug(request_opts[:headers])
|
156
|
+
logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
|
155
157
|
logger.debug('Request Body =>')
|
156
158
|
logger.debug(request_opts[:body])
|
157
159
|
NetHTTP::Response.new(
|
@@ -171,12 +173,12 @@ module NetHTTP
|
|
171
173
|
raise NetHTTP::Request::SchemaError.new(schema_results.to_s)
|
172
174
|
end
|
173
175
|
|
174
|
-
request_method = opts[:method]
|
176
|
+
request_method = opts[:method] || 'post'
|
175
177
|
request_uri = Core::Utilities.parse_uri(opts[:uri] || opts[:url] || uri)
|
176
178
|
request_path = (opts[:path] || request_uri.path || path).chomp('?')
|
177
179
|
request_query = Core::Utilities.parse_query((opts[:query] || request_uri.query || query))
|
178
|
-
request_headers = opts[:headers]
|
179
|
-
request_body = opts[:body]
|
180
|
+
request_headers = opts[:headers] || {}
|
181
|
+
request_body = opts[:body] || nil
|
180
182
|
|
181
183
|
{
|
182
184
|
method: request_method,
|
data/lib/response/response.rb
CHANGED
@@ -32,52 +32,37 @@ module NetHTTP
|
|
32
32
|
log_response
|
33
33
|
end
|
34
34
|
|
35
|
-
alias resp response
|
36
|
-
|
37
35
|
def body=
|
38
36
|
@body = response.body
|
39
37
|
end
|
40
38
|
|
41
|
-
alias resp_body body
|
42
|
-
alias response_body body
|
43
|
-
|
44
39
|
def body_obj=
|
45
40
|
@body_obj = {}
|
46
41
|
|
47
|
-
if
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
logger.debug(error)
|
52
|
-
end
|
53
|
-
elsif valid_xml? || valid_html?
|
54
|
-
begin
|
55
|
-
@body_obj = NetHTTP::Core::Utilities.xml_2_hash(body, 'symbol', logger)
|
56
|
-
rescue Nokogiri::XML::SyntaxError => error
|
57
|
-
logger.debug(error)
|
58
|
-
end
|
42
|
+
if content_type.to_s.downcase.include?('json')
|
43
|
+
@body_obj = parse_json(body, logger)
|
44
|
+
elsif content_type.to_s.downcase.include?('xml') || content_type.to_s.downcase.include?('html')
|
45
|
+
@body_boj = parse_xml(body, logger)
|
59
46
|
end
|
60
|
-
end
|
61
47
|
|
62
|
-
|
63
|
-
|
48
|
+
@body_obj
|
49
|
+
end
|
64
50
|
|
65
51
|
def body_os=
|
66
52
|
@body_os = JSON.parse(body_obj.to_json, object_class: OpenStruct)
|
67
53
|
end
|
68
54
|
|
69
|
-
alias resp_body_os body_os
|
70
|
-
alias response_body_os body_os
|
71
|
-
alias body_open_struct body_os
|
72
|
-
alias resp_body_open_struct body_os
|
73
|
-
alias response_body_open_struct body_os
|
74
|
-
|
75
55
|
def code=
|
76
56
|
@code = response.code
|
77
57
|
end
|
78
58
|
|
79
|
-
|
80
|
-
|
59
|
+
def content_type
|
60
|
+
content_type = headers_hash.select { |k,v| k.to_s.downcase == 'content_type' }
|
61
|
+
|
62
|
+
return nil if content_type.empty?
|
63
|
+
|
64
|
+
content_type[:content_type]
|
65
|
+
end
|
81
66
|
|
82
67
|
def headers=
|
83
68
|
@headers = {}
|
@@ -86,35 +71,40 @@ module NetHTTP
|
|
86
71
|
end
|
87
72
|
end
|
88
73
|
|
89
|
-
alias resp_headers headers
|
90
|
-
alias response_headers headers
|
91
|
-
|
92
74
|
def headers_hash=
|
93
|
-
@headers_hash =
|
94
|
-
NetHTTP::Core::Utilities.convert_hash_keys(
|
75
|
+
@headers_hash = NetHTTP::Core::Utilities.convert_hash_keys(
|
95
76
|
object: headers,
|
96
77
|
format: 'snake',
|
97
78
|
type: 'symbol'
|
98
79
|
)
|
99
80
|
end
|
100
81
|
|
101
|
-
alias resp_headers_hash headers_hash
|
102
|
-
alias response_headers_hash headers_hash
|
103
|
-
|
104
82
|
def headers_os=
|
105
83
|
@headers_os = JSON.parse(headers_hash.to_json, object_class: OpenStruct)
|
106
84
|
end
|
107
85
|
|
108
|
-
alias resp_headers_os headers_os
|
109
|
-
alias response_headers_os headers_os
|
110
|
-
alias headers_open_struct headers_os
|
111
|
-
alias resp_headers_struct headers_os
|
112
|
-
alias response_headers_open_struct headers_os
|
113
|
-
|
114
86
|
def response=(response)
|
115
87
|
@response = response
|
116
88
|
end
|
117
89
|
|
90
|
+
def parse_json(body, logger)
|
91
|
+
begin
|
92
|
+
NetHTTP::Core::Utilities.json_2_hash(body, 'symbol', logger)
|
93
|
+
rescue JSON::ParserError => err
|
94
|
+
logger.debug(err)
|
95
|
+
return {}
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def parse_xml(body, logger)
|
100
|
+
begin
|
101
|
+
NetHTTP::Core::Utilities.xml_2_hash(body, 'symbol', logger)
|
102
|
+
rescue Nokogiri::XML::SyntaxError => err
|
103
|
+
logger.debug(err)
|
104
|
+
return {}
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
118
108
|
def valid_json?
|
119
109
|
NetHTTP::Core::Utilities.valid_json?(body, logger)
|
120
110
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rb-net_http-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Bostian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.13.
|
33
|
+
version: 0.13.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.13.
|
40
|
+
version: 0.13.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: nokogiri
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.10.
|
47
|
+
version: 1.10.4
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.10.
|
54
|
+
version: 1.10.4
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -279,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
279
279
|
- !ruby/object:Gem::Version
|
280
280
|
version: '0'
|
281
281
|
requirements: []
|
282
|
-
rubygems_version: 3.0.
|
282
|
+
rubygems_version: 3.0.6
|
283
283
|
signing_key:
|
284
284
|
specification_version: 4
|
285
285
|
summary: A Simple Ruby HTTP Client
|