6464import org .springframework .http .client .ClientHttpRequestInterceptor ;
6565import org .springframework .http .client .ClientHttpResponse ;
6666import org .springframework .http .client .SimpleClientHttpRequestFactory ;
67+ import org .springframework .http .converter .ByteArrayHttpMessageConverter ;
68+ import org .springframework .http .converter .FormHttpMessageConverter ;
6769import org .springframework .http .converter .HttpMessageConverter ;
6870import org .springframework .http .converter .HttpMessageNotReadableException ;
71+ import org .springframework .http .converter .ResourceHttpMessageConverter ;
72+ import org .springframework .http .converter .StringHttpMessageConverter ;
6973import org .springframework .http .converter .xml .SimpleXmlHttpMessageConverter ;
7074import org .springframework .util .FileCopyUtils ;
7175import org .springframework .web .client .HttpStatusCodeException ;
8185import java .net .URI ;
8286import java .net .URISyntaxException ;
8387import java .net .URLEncoder ;
88+ import java .nio .charset .Charset ;
8489import java .util .ArrayList ;
8590import java .util .Iterator ;
8691import java .util .List ;
@@ -110,7 +115,6 @@ public class JsRestClient {
110115 public static final String REST_REPORT_STATUS = "/status" ;
111116 public static final String REST_THUMBNAILS = "/thumbnails" ;
112117
113- private SimpleXmlHttpMessageConverter simpleXmlHttpMessageConverter ;
114118
115119 // the timeout in milliseconds until a connection is established
116120 private int connectTimeout = 15 * 1000 ;
@@ -129,7 +133,7 @@ public class JsRestClient {
129133 //---------------------------------------------------------------------
130134
131135 public JsRestClient () {
132- this (new RestTemplate (true ), new SimpleClientHttpRequestFactory ());
136+ this (new RestTemplate (false ), new SimpleClientHttpRequestFactory ());
133137 }
134138
135139 public JsRestClient (RestTemplate restTemplate ) {
@@ -140,9 +144,7 @@ public JsRestClient(RestTemplate restTemplate,
140144 SimpleClientHttpRequestFactory factory ) {
141145 this .restTemplate = restTemplate ;
142146 this .requestFactory = factory ;
143-
144- fetchXmlConverter ();
145- configureAnnotationStrategy ();
147+ configureMessageConverters ();
146148 }
147149
148150 //---------------------------------------------------------------------
@@ -1235,22 +1237,24 @@ private String generateInputControlsUrl(String reportUri, List<String> controlsI
12351237 return fullUri .toString ();
12361238 }
12371239
1238- private void fetchXmlConverter () {
1239- List <HttpMessageConverter <?>> converters = restTemplate .getMessageConverters ();
1240- for (HttpMessageConverter <?> converter : converters ) {
1241- if (converter instanceof SimpleXmlHttpMessageConverter ) {
1242- simpleXmlHttpMessageConverter =
1243- (SimpleXmlHttpMessageConverter ) converter ;
1244- }
1245- }
1240+ private void configureMessageConverters () {
1241+ List <HttpMessageConverter <?>> messageConverters = restTemplate .getMessageConverters ();
1242+ messageConverters .add (new ByteArrayHttpMessageConverter ());
1243+ messageConverters .add (new StringHttpMessageConverter (Charset .forName ("UTF-8" )));
1244+ messageConverters .add (new ResourceHttpMessageConverter ());
1245+ messageConverters .add (new FormHttpMessageConverter ());
1246+
1247+ SimpleXmlHttpMessageConverter simpleXmlHttpMessageConverter
1248+ = new SimpleXmlHttpMessageConverter ();
1249+ configureAnnotationStrategy (simpleXmlHttpMessageConverter );
1250+ messageConverters .add (simpleXmlHttpMessageConverter );
12461251 }
12471252
1248- private void configureAnnotationStrategy () {
1249- if (simpleXmlHttpMessageConverter != null ) {
1250- Strategy annotationStrategy = new AnnotationStrategy ();
1251- Serializer serializer = new Persister (annotationStrategy );
1252- simpleXmlHttpMessageConverter .setSerializer (serializer );
1253- }
1253+ private void configureAnnotationStrategy (
1254+ SimpleXmlHttpMessageConverter simpleXmlHttpMessageConverter ) {
1255+ Strategy annotationStrategy = new AnnotationStrategy ();
1256+ Serializer serializer = new Persister (annotationStrategy );
1257+ simpleXmlHttpMessageConverter .setSerializer (serializer );
12541258 }
12551259
12561260 //---------------------------------------------------------------------
0 commit comments