@@ -38,6 +38,7 @@ public class GXRestAPIClient {
3838 private JSONObject jsonResponse ;
3939 private HashMap <String , String > queryVars = new HashMap <String , String >();
4040 private HashMap <String , String > bodyVars = new HashMap <String , String >();
41+ private HashMap <String , String > headerVars = new HashMap <String , String >();
4142 private HashMap <String , String > responseData = new HashMap <String , String >();
4243
4344 static final String DATE_FMT = "yyyy-MM-dd" ;
@@ -190,6 +191,71 @@ private String quoteString(String value) {
190191 return "\" " + value + "\" " ;
191192 }
192193
194+ /// Add Header parameters
195+
196+ public <T extends GXXMLSerializable > void addHeaderVar (String varName , GXBaseCollection <T > varValue ) {
197+ if ( varValue != null ) {
198+ headerVars .put (varName , varValue .toJSonString (false ));
199+ }
200+ }
201+
202+ public void addHeaderVar (String varName , GXXMLSerializable varValue ) {
203+ if ( varValue != null ) {
204+ headerVars .put (varName , varValue .toJSonString (false ));
205+ }
206+ }
207+
208+ public void addHeaderVar (String varName , String varValue ) {
209+ headerVars .put ( varName , quoteString (varValue ));
210+ }
211+
212+ public void addHeaderVar (String varName , double varValue ) {
213+ headerVars .put (varName , quoteString (Double .toString (varValue )));
214+ }
215+
216+ public void addHeaderVar (String varName , Date varValue ) {
217+ SimpleDateFormat df = new SimpleDateFormat (DATE_FMT );
218+ headerVars .put (varName , quoteString (df .format (varValue )));
219+ }
220+
221+ public void addHeaderVar (String varName , Date varValue , boolean hasMilliseconds ) {
222+ String fmt = DATETIME_FMT ;
223+ if (hasMilliseconds )
224+ fmt = DATETIME_FMT_MS ;
225+ SimpleDateFormat df = new SimpleDateFormat (fmt );
226+ headerVars .put ( varName , quoteString (df .format (varValue )));
227+ }
228+
229+ public void addHeaderVar (String varName , short varValue ) {
230+ headerVars .put ( varName , Short .toString (varValue ));
231+ }
232+
233+ public void addHeaderVar (String varName , int varValue ) {
234+ headerVars .put ( varName , Integer .toString (varValue ));
235+ }
236+
237+ public void addHeaderVar (String varName , long varValue ) {
238+ headerVars .put ( varName , Long .toString (varValue ));
239+ }
240+
241+ public void addHeaderVar (String varName , Boolean varValue ) {
242+ headerVars .put ( varName , varValue .toString ());
243+ }
244+
245+ public void addHeaderVar (String varName , BigDecimal varValue ) {
246+ headerVars .put ( varName , varValue .toString ());
247+ }
248+
249+ public void addHeaderVar (String varName , java .util .UUID varValue ) {
250+ headerVars .put ( varName , quoteString (varValue .toString ()));
251+ }
252+
253+ public void addHeaderVar (String varName , IGxJSONSerializable varValue ) {
254+ headerVars .put ( varName , quoteString (varValue .toJSonString ()));
255+ }
256+
257+ ///
258+
193259 public <T extends GXXMLSerializable > void addBodyVar (String varName , GXBaseCollection <T > varValue ) {
194260 if ( varValue != null ) {
195261 bodyVars .put (varName , varValue .toJSonString (false ));
@@ -418,6 +484,7 @@ public <T extends GXXMLSerializable> GXBaseCollection<T> getBodyObjCollection(St
418484 fillCollection (varName , elementClass , col );
419485 return col ;
420486 }
487+
421488 private <T extends GXXMLSerializable > void fillCollection (String varName , Class <T > elementClass , GXBaseCollection col ) {
422489 JSONArray jsonarr = new JSONArray ();
423490 try {
@@ -515,6 +582,13 @@ public void RestExecute() {
515582 if (location .getAuthenticationMethod () == 4 && location .getAccessToken () != null && ! location .getAccessToken ().trim ().isEmpty ()) {
516583 httpClient .addHeader ("Authorization" , location .getAccessToken ());
517584 }
585+ if (headerVars .size () > 0 ) {
586+ separator = "" ;
587+ for ( Map .Entry <String , String > entry : headerVars .entrySet ()) {
588+ httpClient .addHeader (entry .getKey (), entry .getValue ());
589+ }
590+ }
591+ headerVars .clear ();
518592 String serviceuri = ((location .getSecure () > 0 ) ? "https" : "http" ) + "://" + location .getHost ();
519593 serviceuri += (location .getPort () != 80 ) ? ":" + Integer .toString (location .getPort ()): "" ;
520594 serviceuri += "/" + location .getBaseURL () + "/" + location .getResourceName ();
0 commit comments