@@ -618,20 +618,16 @@ class EcpWebService {
618
618
619
619
ResponseBody responseBody = response. body()
620
620
okhttp3.MediaType respContentType = responseBody. contentType()
621
- String subType = respContentType. subtype ()?. toLowerCase()
621
+ String mediaType = respContentType. type ()?. toLowerCase()
622
622
def responseData
623
-
624
- switch (subType) {
625
- case " json" :
623
+ if (isTextBased(mediaType)) {
624
+ responseData = responseBody . string()
625
+ if (mediaType . contains( ' json' )) {
626
626
ObjectMapper objectMapper = new ObjectMapper ()
627
627
responseData = objectMapper. readValue(responseBody. string(), Object )
628
- break
629
- case " text" :
630
- responseData = responseBody. string()
631
- break
632
- default :
633
- responseData = responseBody. byteStream()
634
- break
628
+ }
629
+ } else {
630
+ responseData = responseBody. byteStream()
635
631
}
636
632
637
633
result. statusCode = result. status = response. code()
@@ -645,6 +641,18 @@ class EcpWebService {
645
641
return result
646
642
}
647
643
644
+ private static boolean isTextBased (String contentType ) {
645
+ if (! contentType) {
646
+ log. error(" Missing content type" )
647
+ return false
648
+ }
649
+ String contentTypeLower = contentType. toLowerCase()
650
+ return contentTypeLower. contains(' json' ) ||
651
+ contentTypeLower. contains(' text' ) ||
652
+ contentTypeLower. contains(' xml' ) ||
653
+ contentTypeLower. contains(' graphql' )
654
+ }
655
+
648
656
/**
649
657
* Forwards a HTTP multipart/form-data request to ecodata.
650
658
* @param url the URL to forward to.
0 commit comments