|
5 | 5 | import com.codingapi.springboot.framework.rest.properties.HttpProxyProperties;
|
6 | 6 | import lombok.extern.slf4j.Slf4j;
|
7 | 7 | import org.springframework.http.HttpHeaders;
|
| 8 | +import org.springframework.http.MediaType; |
8 | 9 |
|
9 | 10 | @Slf4j
|
10 | 11 | public class RestClient {
|
11 | 12 |
|
| 13 | + private final HttpHeaders httpHeaders; |
| 14 | + |
12 | 15 | private final HttpClient httpClient;
|
13 | 16 |
|
14 |
| - private final static int RETRY_COUNT = 5; |
| 17 | + private final int retryCount; |
15 | 18 |
|
16 |
| - private final static String EMPTY = "{}"; |
| 19 | + private final String emptyResponse; |
17 | 20 |
|
18 | 21 | private final String baseUrl;
|
19 | 22 |
|
20 |
| - public RestClient(HttpProxyProperties httpProxyProperties, String baseUrl) { |
| 23 | + public RestClient(HttpProxyProperties httpProxyProperties, String baseUrl,int retryCount,String emptyResponse) { |
21 | 24 | this.baseUrl = baseUrl;
|
| 25 | + this.retryCount = retryCount; |
22 | 26 | this.httpClient = new HttpClient(httpProxyProperties);
|
| 27 | + this.httpHeaders = new HttpHeaders(); |
| 28 | + this.emptyResponse = emptyResponse; |
| 29 | + this.initHeaders(); |
23 | 30 | }
|
24 | 31 |
|
25 | 32 | public RestClient(String baseUrl) {
|
26 |
| - this(null,baseUrl); |
| 33 | + this(null, baseUrl,5,"{}"); |
| 34 | + } |
| 35 | + |
| 36 | + private void initHeaders() { |
| 37 | + httpHeaders.setContentType(MediaType.APPLICATION_JSON); |
27 | 38 | }
|
28 | 39 |
|
29 | 40 | private String toUrl(String api) {
|
30 | 41 | return baseUrl + api;
|
31 | 42 | }
|
| 43 | + |
32 | 44 | private String _get(String api, RestParamBuilder paramBuilder) {
|
33 |
| - return _get(api,new HttpHeaders(),paramBuilder); |
| 45 | + return _get(api, httpHeaders, paramBuilder); |
34 | 46 | }
|
35 | 47 |
|
36 |
| - private String _get(String api,HttpHeaders headers, RestParamBuilder paramBuilder) { |
37 |
| - return httpClient.get(toUrl(api), headers,paramBuilder!=null?paramBuilder.toFormRequest():null); |
| 48 | + private String _get(String api, HttpHeaders headers, RestParamBuilder paramBuilder) { |
| 49 | + return httpClient.get(toUrl(api), headers, paramBuilder != null ? paramBuilder.toFormRequest() : null); |
38 | 50 | }
|
39 | 51 |
|
40 |
| - public String get(String api,HttpHeaders headers, RestParamBuilder paramBuilder) { |
41 |
| - for(int i=0; i< RETRY_COUNT; i++){ |
| 52 | + public String get(String api, HttpHeaders headers, RestParamBuilder paramBuilder) { |
| 53 | + for (int i = 0; i < retryCount; i++) { |
42 | 54 | try {
|
43 |
| - return _get(api,headers, paramBuilder); |
44 |
| - }catch (Exception e){ |
45 |
| - log.warn("api:{},error:{}",api,e.getMessage()); |
| 55 | + return _get(api, headers, paramBuilder); |
| 56 | + } catch (Exception e) { |
| 57 | + log.warn("api:{},error:{}", api, e.getMessage()); |
46 | 58 | sleep();
|
47 | 59 | }
|
48 | 60 | }
|
49 |
| - return EMPTY; |
| 61 | + return emptyResponse; |
50 | 62 | }
|
| 63 | + |
51 | 64 | public String get(String api, RestParamBuilder paramBuilder) {
|
52 |
| - return get(api,new HttpHeaders(),paramBuilder); |
| 65 | + return get(api, new HttpHeaders(), paramBuilder); |
53 | 66 | }
|
54 | 67 |
|
55 | 68 | public String get(String api) {
|
56 |
| - return get(api,new HttpHeaders(),null); |
| 69 | + return get(api, httpHeaders, null); |
57 | 70 | }
|
58 | 71 |
|
59 |
| - public String get(String api,HttpHeaders headers) { |
60 |
| - return get(api,headers,null); |
| 72 | + public String get(String api, HttpHeaders headers) { |
| 73 | + return get(api, headers, null); |
61 | 74 | }
|
62 | 75 |
|
63 | 76 | private String _post(String api, JSONObject requestBody) {
|
64 |
| - return _post(api,new HttpHeaders(),requestBody); |
| 77 | + return _post(api, new HttpHeaders(), requestBody); |
65 | 78 | }
|
66 | 79 |
|
67 | 80 | private String _post(String api, HttpHeaders headers, JSONObject requestBody) {
|
68 |
| - return httpClient.post(toUrl(api),headers, requestBody); |
| 81 | + return httpClient.post(toUrl(api), headers, requestBody); |
69 | 82 | }
|
70 | 83 |
|
71 | 84 | public String post(String api, JSONObject requestBody) {
|
72 |
| - return post(api,new HttpHeaders(),requestBody); |
| 85 | + return post(api, new HttpHeaders(), requestBody); |
73 | 86 | }
|
74 | 87 |
|
75 | 88 | public String post(String api, RestParamBuilder paramBuilder) {
|
76 |
| - return post(api,new HttpHeaders(),paramBuilder.toJsonRequest()); |
| 89 | + return post(api, httpHeaders, paramBuilder.toJsonRequest()); |
77 | 90 | }
|
78 | 91 |
|
79 |
| - public String post(String api,HttpHeaders headers, JSONObject requestBody) { |
80 |
| - for (int i=0;i< RETRY_COUNT;i++){ |
| 92 | + public String post(String api, HttpHeaders headers, JSONObject requestBody) { |
| 93 | + for (int i = 0; i < retryCount; i++) { |
81 | 94 | try {
|
82 | 95 | return _post(api, headers, requestBody);
|
83 |
| - }catch (Exception e){ |
84 |
| - log.warn("api:{},error:{}",api,e.getMessage()); |
| 96 | + } catch (Exception e) { |
| 97 | + log.warn("api:{},error:{}", api, e.getMessage()); |
85 | 98 | sleep();
|
86 | 99 | }
|
87 | 100 | }
|
88 |
| - return EMPTY; |
| 101 | + return emptyResponse; |
89 | 102 | }
|
90 | 103 |
|
91 |
| - public String post(String api,HttpHeaders headers, RestParamBuilder paramBuilder) { |
92 |
| - return post(api, headers, paramBuilder.toJsonRequest()); |
| 104 | + public String post(String api, HttpHeaders headers, RestParamBuilder paramBuilder) { |
| 105 | + return post(api, headers, paramBuilder.toJsonRequest()); |
93 | 106 | }
|
94 | 107 |
|
95 | 108 |
|
96 |
| - private void sleep(){ |
| 109 | + private void sleep() { |
97 | 110 | try {
|
98 | 111 | Thread.sleep(1000);
|
99 | 112 | } catch (InterruptedException ex) {
|
|
0 commit comments