Adds support for downloading binary record response
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / ServiceProxyClient.java
index 152ee33..2db4558 100644 (file)
@@ -100,13 +100,14 @@ public class ServiceProxyClient implements SearchClient {
     byte[] response = null;\r
     try {\r
       response = client.execute(httpget, handler);\r
-      if (handler.getStatusCode()==200 && handler.getContentType().contains("xml")) {\r
+      if (handler.getStatusCode()==200 && (handler.getContentType().contains("xml") || handler.getContentType().contains("octet-stream"))) {\r
+        logger.debug("Creating command response holding content of type " + handler.getContentType());\r
         commandResponse = new ClientCommandResponse(handler.getStatusCode(),response,handler.getContentType());\r
       } else {\r
         logger.error("Service Proxy status code: " + handler.getStatusCode());\r
         String errorXml = "";\r
         if (handler.getContentType().contains("xml")) {\r
-          errorXml = CommandError.insertErrorXml(command.getCommandName(), String.valueOf(handler.getStatusCode()), "Service Proxy error: "+handler.getStatusCode(), new String(response,"UTF-8"));          \r
+          errorXml = CommandError.insertErrorXml(command.getCommandName(), String.valueOf(handler.getStatusCode()), "Service Proxy error: "+handler.getStatusCode(), new String(response,"UTF-8"));        \r
         } else {\r
           if (handler.getContentType().contains("html")) {\r
             String htmlStrippedOfTags = (new String(response,"UTF-8")).replaceAll("\\<[^>]*>","");\r
@@ -117,9 +118,9 @@ public class ServiceProxyClient implements SearchClient {
             }\r
           } else {\r
             errorXml = CommandError.createErrorXml(command.getCommandName(), String.valueOf(handler.getStatusCode()), "Unexpected response type from Service Proxy: "+handler.getContentType(), "Could not process non-XML response from Service Proxy", new String(response,"UTF-8"));\r
-          }\r
-          commandResponse = new ClientCommandResponse(handler.getStatusCode(),errorXml,handler.getContentType());\r
+          }          \r
         }\r
+        commandResponse = new ClientCommandResponse(handler.getStatusCode(),errorXml,handler.getContentType());\r
       }       \r
     } catch (Exception e) {\r
       e.printStackTrace();\r