public class Pz2CommandResponse implements CommandResponse {\r
\r
private Pazpar2HttpResponse pz2httpResponse = null;\r
- private ByteArrayOutputStream content = null;\r
+ private int statusCode;\r
+ private String contentType;\r
+ private byte[] content = null;\r
+ private String contentString = null;\r
\r
public Pz2CommandResponse(Pazpar2HttpResponse pz2response, ByteArrayOutputStream content) {\r
pz2httpResponse = pz2response;\r
- this.content = content;\r
+ this.content = content.toByteArray();\r
+ this.statusCode = pz2httpResponse.getStatusCode();\r
+ this.contentType = pz2httpResponse.getContentType();\r
+ }\r
+ \r
+ public Pz2CommandResponse(Pazpar2HttpResponse pz2response, String content) {\r
+ pz2httpResponse = pz2response;\r
+ this.contentString = content;\r
+ }\r
+ \r
+ public Pz2CommandResponse(int statusCode, String content, String contentType) {\r
+ this.statusCode = statusCode;\r
+ this.contentString = content;\r
+ this.contentType = contentType;\r
}\r
\r
@Override\r
public int getStatusCode() { \r
- return pz2httpResponse.getStatusCode();\r
+ return statusCode;\r
}\r
\r
@Override\r
public String getContentType() {\r
- return pz2httpResponse.getContentType();\r
+ return contentType;\r
}\r
\r
@Override\r
public String getResponseString() {\r
- try {\r
- return content.toString("UTF-8");\r
- } catch (UnsupportedEncodingException e) { \r
- e.printStackTrace();\r
- return null;\r
+ if (content == null) {\r
+ return contentString;\r
+ } else {\r
+ try {\r
+ return new String(content,"UTF-8");\r
+ } catch (UnsupportedEncodingException e) { \r
+ e.printStackTrace();\r
+ return "<error>unsupported encoding</error>";\r
+ }\r
}\r
}\r
\r
+ @Override\r
+ public byte[] getBinaryResponse() {\r
+ return content;\r
+ }\r
+\r
+ @Override\r
+ public boolean isBinary() { \r
+ return !contentType.contains("xml");\r
+ }\r
\r
}\r