|
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