@@ -81,7 +81,11 @@ protected static boolean envEnabled(final String envVar) {
8181 }
8282
8383 protected void makeRequest (final String method , final String url ) {
84- final okhttp3 .Request request = buildRequest (method , url , null , null );
84+ makeRequest (method , url , (RequestOptions ) null );
85+ }
86+
87+ protected void makeRequest (final String method , final String url , final RequestOptions options ) {
88+ final okhttp3 .Request request = buildRequest (method , url , null , null , options );
8589
8690 try (final Response response = client .newCall (request ).execute ()) {
8791 if (!response .isSuccessful ()) {
@@ -108,20 +112,38 @@ protected void makeRequest(final String method, final String url) {
108112 }
109113
110114 protected <T > T makeRequest (final String method , final String url , final Type resourceClass ) {
111- return makeRequest (method , url , null , null , resourceClass );
115+ return makeRequest (method , url , null , null , null , resourceClass );
116+ }
117+
118+ protected <T > T makeRequest (final String method , final String url , final RequestOptions options , final Type resourceClass ) {
119+ return makeRequest (method , url , null , null , options , resourceClass );
112120 }
113121
114122 protected <T > T makeRequest (
115123 final String method , final String url , final Request body , final Type resourceClass ) {
116- return makeRequest (method , url , body , null , resourceClass );
124+ return makeRequest (method , url , body , null , null , resourceClass );
125+ }
126+
127+ protected <T > T makeRequest (
128+ final String method , final String url , final Request body , final RequestOptions options , final Type resourceClass ) {
129+ return makeRequest (method , url , body , null , options , resourceClass );
130+ }
131+
132+ protected <T > T makeRequest (
133+ final String method ,
134+ final String url ,
135+ final HashMap <String , Object > queryParams ,
136+ final Type resourceClass ) {
137+ return makeRequest (method , url , null , queryParams , null , resourceClass );
117138 }
118139
119140 protected <T > T makeRequest (
120141 final String method ,
121142 final String url ,
122143 final HashMap <String , Object > queryParams ,
144+ final RequestOptions options ,
123145 final Type resourceClass ) {
124- return makeRequest (method , url , null , queryParams , resourceClass );
146+ return makeRequest (method , url , null , queryParams , options , resourceClass );
125147 }
126148
127149 protected <T > T makeRequest (
@@ -130,7 +152,17 @@ protected <T> T makeRequest(
130152 final Request body ,
131153 final HashMap <String , Object > queryParams ,
132154 final Type resourceClass ) {
133- final okhttp3 .Request request = buildRequest (method , url , body , queryParams );
155+ return makeRequest (method , url , body , queryParams , null , resourceClass );
156+ }
157+
158+ protected <T > T makeRequest (
159+ final String method ,
160+ final String url ,
161+ final Request body ,
162+ final HashMap <String , Object > queryParams ,
163+ final RequestOptions options ,
164+ final Type resourceClass ) {
165+ final okhttp3 .Request request = buildRequest (method , url , body , queryParams , options );
134166
135167 try (final Response response = client .newCall (request ).execute ()) {
136168
@@ -160,7 +192,7 @@ protected <T> T makeRequest(
160192 }
161193
162194 public int getRecordCount (final String url , final HashMap <String , Object > queryParams ) {
163- final okhttp3 .Request request = buildRequest ("HEAD" , url , null , queryParams );
195+ final okhttp3 .Request request = buildRequest ("HEAD" , url , null , queryParams , null );
164196
165197 try (final Response response = client .newCall (request ).execute ()) {
166198
@@ -195,7 +227,8 @@ private okhttp3.Request buildRequest(
195227 final String method ,
196228 final String url ,
197229 final Request body ,
198- final HashMap <String , Object > queryParams ) {
230+ final HashMap <String , Object > queryParams ,
231+ final RequestOptions options ) {
199232 final HttpUrl .Builder httpBuilder = HttpUrl .parse (this .apiUrl + url ).newBuilder ();
200233
201234 final RequestBody requestBody =
@@ -239,6 +272,15 @@ private okhttp3.Request buildRequest(
239272
240273 final Builder requestBuilder = new okhttp3 .Request .Builder ().url (requestUrl );
241274
275+ if (options != null ) {
276+ for (Map .Entry <String , String > entry : options .getHeaders ().entrySet ()) {
277+ requestBuilder .header (entry .getKey (), entry .getValue ());
278+ }
279+ if (options .getIdempotencyKey () != null ) {
280+ requestBuilder .header ("Idempotency-Key" , options .getIdempotencyKey ());
281+ }
282+ }
283+
242284 switch (method ) {
243285 case "HEAD" :
244286 return requestBuilder .head ().build ();
0 commit comments