k3cloud-sdk 0.4.3 → 0.4.4
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/Gemfile.lock +3 -2
- data/lib/k3cloud/http.rb +24 -8
- data/lib/k3cloud/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c129198e6a505d9b23108206100c842f1b0f94c0af6e23d7861653959ad45aa
|
4
|
+
data.tar.gz: dba6a6547c17d7e80fbf0aacee553a4c9f96f9c81c69d26867a52732ffdad93b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53fd09b1ea66c3c07c282fbc61ba19b98a34976e91786bd92f3e9f692f69e782ce3d7680011db3191575a11a5746a87b5d173027768217f92fbd86dfeca89d13
|
7
|
+
data.tar.gz: d3878ab3f399a20c9d915feb73f0cd0b0c2b23148924b71640a9239a4f77cd29b3988549397be8cbc7b3152b2de97429d791bf6f3efa4638fc62c3698c91e876
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
k3cloud-sdk (0.4.
|
4
|
+
k3cloud-sdk (0.4.4)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -24,6 +24,7 @@ GEM
|
|
24
24
|
|
25
25
|
PLATFORMS
|
26
26
|
arm64-darwin-22
|
27
|
+
arm64-darwin-23
|
27
28
|
|
28
29
|
DEPENDENCIES
|
29
30
|
k3cloud-sdk!
|
@@ -31,4 +32,4 @@ DEPENDENCIES
|
|
31
32
|
rspec (~> 3.0)
|
32
33
|
|
33
34
|
BUNDLED WITH
|
34
|
-
2.4.
|
35
|
+
2.4.14
|
data/lib/k3cloud/http.rb
CHANGED
@@ -14,26 +14,42 @@ module K3cloud
|
|
14
14
|
@url = url
|
15
15
|
@header = header
|
16
16
|
@body = body
|
17
|
-
@connect_timeout = connect_timeout ||
|
18
|
-
@request_timeout = request_timeout ||
|
17
|
+
@connect_timeout = connect_timeout || 2
|
18
|
+
@request_timeout = request_timeout || 2
|
19
19
|
end
|
20
20
|
|
21
21
|
def post
|
22
22
|
uri = URI(@url)
|
23
23
|
http = Net::HTTP.new(uri.host, uri.port)
|
24
24
|
http.use_ssl = (uri.scheme == "https")
|
25
|
-
http.open_timeout = @connect_timeout *
|
26
|
-
http.read_timeout = @request_timeout *
|
25
|
+
http.open_timeout = @connect_timeout * 60
|
26
|
+
http.read_timeout = @request_timeout * 60
|
27
27
|
request = Net::HTTP::Post.new(uri)
|
28
28
|
request.initialize_http_header(@header)
|
29
29
|
request["Content-Type"] = "application/json"
|
30
30
|
request["User-Agent"] = "Kingdee/Ruby WebApi SDK"
|
31
31
|
request.body = @body.to_json
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
max_retries = 5 # 最大重试次数
|
33
|
+
retry_count = 0
|
34
|
+
sleep_interval = 5 # 重试间隔时间,单位秒
|
35
|
+
|
36
|
+
begin
|
37
|
+
response = http.request(request)
|
38
|
+
if response.code.to_i != 200 && response.code.to_i != 206
|
39
|
+
raise K3cloud::ResponseError, "status: #{response.code}, desc: #{response.body}"
|
40
|
+
end
|
41
|
+
response.body
|
42
|
+
rescue Errno::ETIMEDOUT, Net::OpenTimeout, Net::ReadTimeout => e
|
43
|
+
K3cloud.logger.error("Request timed out: #{e.message}")
|
44
|
+
if retry_count < max_retries
|
45
|
+
retry_count += 1
|
46
|
+
K3cloud.logger.info("Request timed out. Retrying #{retry_count}/#{max_retries} in #{sleep_interval} seconds...")
|
47
|
+
sleep(sleep_interval)
|
48
|
+
retry
|
49
|
+
else
|
50
|
+
raise K3cloud::ResponseError, "Request failed after #{max_retries} retries: #{e.message}, backtrace: #{e.backtrace}"
|
51
|
+
end
|
35
52
|
end
|
36
|
-
response.body
|
37
53
|
end
|
38
54
|
end
|
39
55
|
end
|
data/lib/k3cloud/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k3cloud-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zevinto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Ruby Gem for K3cloud OpenApi that uses cryptographic signature technology
|
14
14
|
to avoid plaintext transmission of keys and enables automatic login.
|