@@ -39,6 +39,7 @@ public class GXRestAPIClient {
39
39
private JSONObject jsonResponse ;
40
40
private HashMap <String , String > queryVars = new HashMap <String , String >();
41
41
private HashMap <String , String > bodyVars = new HashMap <String , String >();
42
+ private HashMap <String , String > headerVars = new HashMap <String , String >();
42
43
private HashMap <String , String > responseData = new HashMap <String , String >();
43
44
44
45
static final String DATE_FMT = "yyyy-MM-dd" ;
@@ -183,6 +184,71 @@ private String quoteString(String value) {
183
184
return "\" " + value + "\" " ;
184
185
}
185
186
187
+ /// Add Header parameters
188
+
189
+ public <T extends GXXMLSerializable > void addHeaderVar (String varName , GXBaseCollection <T > varValue ) {
190
+ if ( varValue != null ) {
191
+ headerVars .put (varName , varValue .toJSonString (false ));
192
+ }
193
+ }
194
+
195
+ public void addHeaderVar (String varName , GXXMLSerializable varValue ) {
196
+ if ( varValue != null ) {
197
+ headerVars .put (varName , varValue .toJSonString (false ));
198
+ }
199
+ }
200
+
201
+ public void addHeaderVar (String varName , String varValue ) {
202
+ headerVars .put ( varName , quoteString (varValue ));
203
+ }
204
+
205
+ public void addHeaderVar (String varName , double varValue ) {
206
+ headerVars .put (varName , quoteString (Double .toString (varValue )));
207
+ }
208
+
209
+ public void addHeaderVar (String varName , Date varValue ) {
210
+ SimpleDateFormat df = new SimpleDateFormat (DATE_FMT );
211
+ headerVars .put (varName , quoteString (df .format (varValue )));
212
+ }
213
+
214
+ public void addHeaderVar (String varName , Date varValue , boolean hasMilliseconds ) {
215
+ String fmt = DATETIME_FMT ;
216
+ if (hasMilliseconds )
217
+ fmt = DATETIME_FMT_MS ;
218
+ SimpleDateFormat df = new SimpleDateFormat (fmt );
219
+ headerVars .put ( varName , quoteString (df .format (varValue )));
220
+ }
221
+
222
+ public void addHeaderVar (String varName , short varValue ) {
223
+ headerVars .put ( varName , Short .toString (varValue ));
224
+ }
225
+
226
+ public void addHeaderVar (String varName , int varValue ) {
227
+ headerVars .put ( varName , Integer .toString (varValue ));
228
+ }
229
+
230
+ public void addHeaderVar (String varName , long varValue ) {
231
+ headerVars .put ( varName , Long .toString (varValue ));
232
+ }
233
+
234
+ public void addHeaderVar (String varName , Boolean varValue ) {
235
+ headerVars .put ( varName , varValue .toString ());
236
+ }
237
+
238
+ public void addHeaderVar (String varName , BigDecimal varValue ) {
239
+ headerVars .put ( varName , varValue .toString ());
240
+ }
241
+
242
+ public void addHeaderVar (String varName , java .util .UUID varValue ) {
243
+ headerVars .put ( varName , quoteString (varValue .toString ()));
244
+ }
245
+
246
+ public void addHeaderVar (String varName , IGxJSONSerializable varValue ) {
247
+ headerVars .put ( varName , quoteString (varValue .toJSonString ()));
248
+ }
249
+
250
+ ///
251
+
186
252
public <T extends GXXMLSerializable > void addBodyVar (String varName , GXBaseCollection <T > varValue ) {
187
253
if ( varValue != null ) {
188
254
bodyVars .put (varName , varValue .toJSonString (false ));
@@ -411,6 +477,7 @@ public <T extends GXXMLSerializable> GXBaseCollection<T> getBodyObjCollection(St
411
477
fillCollection (varName , elementClass , col );
412
478
return col ;
413
479
}
480
+
414
481
private <T extends GXXMLSerializable > void fillCollection (String varName , Class <T > elementClass , GXBaseCollection col ) {
415
482
JSONArray jsonarr = new JSONArray ();
416
483
try {
@@ -508,6 +575,13 @@ public void RestExecute() {
508
575
if (location .getAuthenticationMethod () == 4 && location .getAccessToken () != null && ! location .getAccessToken ().trim ().isEmpty ()) {
509
576
httpClient .addHeader ("Authorization" , location .getAccessToken ());
510
577
}
578
+ if (headerVars .size () > 0 ) {
579
+ separator = "" ;
580
+ for ( Map .Entry <String , String > entry : headerVars .entrySet ()) {
581
+ httpClient .addHeader (entry .getKey (), entry .getValue ());
582
+ }
583
+ }
584
+ headerVars .clear ();
511
585
String serviceuri = ((location .getSecure () > 0 ) ? "https" : "http" ) + "://" + location .getHost ();
512
586
serviceuri += (location .getPort () != 80 ) ? ":" + Integer .toString (location .getPort ()): "" ;
513
587
serviceuri += "/" + location .getBaseURL () + "/" + location .getResourceName ();
0 commit comments