Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
im-common
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈永峰
im-common
Commits
6418ee96
Unverified
Commit
6418ee96
authored
Nov 05, 2021
by
Yang Libin
Committed by
GitHub
Nov 05, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: support retry times (#49)
parent
b06cbce1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
1 deletion
+28
-1
HttpUtil.java
src/main/java/io/github/doocs/im/util/HttpUtil.java
+28
-1
No files found.
src/main/java/io/github/doocs/im/util/HttpUtil.java
View file @
6418ee96
...
@@ -23,10 +23,10 @@ public class HttpUtil {
...
@@ -23,10 +23,10 @@ public class HttpUtil {
private
static
final
String
DEFAULT_USER_AGENT
=
DEFAULT_CONFIG
.
getUserAgent
();
private
static
final
String
DEFAULT_USER_AGENT
=
DEFAULT_CONFIG
.
getUserAgent
();
private
static
final
OkHttpClient
DEFAULT_CLIENT
=
new
OkHttpClient
.
Builder
()
private
static
final
OkHttpClient
DEFAULT_CLIENT
=
new
OkHttpClient
.
Builder
()
.
retryOnConnectionFailure
(
DEFAULT_CONFIG
.
getMaxRetries
()
>
0
)
.
connectTimeout
(
DEFAULT_CONFIG
.
getConnectTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
connectTimeout
(
DEFAULT_CONFIG
.
getConnectTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
readTimeout
(
DEFAULT_CONFIG
.
getReadTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
readTimeout
(
DEFAULT_CONFIG
.
getReadTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
writeTimeout
(
DEFAULT_CONFIG
.
getWriteTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
writeTimeout
(
DEFAULT_CONFIG
.
getWriteTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
addInterceptor
(
new
RetryInterceptor
(
DEFAULT_CONFIG
.
getMaxRetries
()))
.
build
();
.
build
();
private
HttpUtil
()
{
private
HttpUtil
()
{
...
@@ -41,6 +41,7 @@ public class HttpUtil {
...
@@ -41,6 +41,7 @@ public class HttpUtil {
.
readTimeout
(
config
.
getReadTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
readTimeout
(
config
.
getReadTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
writeTimeout
(
config
.
getWriteTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
writeTimeout
(
config
.
getWriteTimeout
(),
TimeUnit
.
MILLISECONDS
)
.
retryOnConnectionFailure
(
config
.
getMaxRetries
()
>
0
)
.
retryOnConnectionFailure
(
config
.
getMaxRetries
()
>
0
)
.
addInterceptor
(
new
RetryInterceptor
(
config
.
getMaxRetries
()))
.
build
();
.
build
();
}
}
Map
<
String
,
String
>
headers
=
new
HashMap
<>(
2
);
Map
<
String
,
String
>
headers
=
new
HashMap
<>(
2
);
...
@@ -82,3 +83,29 @@ public class HttpUtil {
...
@@ -82,3 +83,29 @@ public class HttpUtil {
}
}
}
}
}
}
class
RetryInterceptor
implements
Interceptor
{
private
int
maxRetry
;
RetryInterceptor
(
int
maxRetry
)
{
this
.
maxRetry
=
maxRetry
;
}
public
int
getMaxRetry
()
{
return
maxRetry
;
}
public
void
setMaxRetry
(
int
maxRetry
)
{
this
.
maxRetry
=
maxRetry
;
}
@Override
public
Response
intercept
(
Chain
chain
)
throws
IOException
{
Request
request
=
chain
.
request
();
Response
response
=
chain
.
proceed
(
request
);
for
(
int
i
=
0
;
i
<
maxRetry
&&
!
response
.
isSuccessful
();
++
i
)
{
response
=
chain
.
proceed
(
request
);
}
return
response
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment