rb-net_http-client 1.1.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|