protected Representation formatJSON(JSON json, Variant variant) { Representation r = null; // TODO: Firefox 2 seems to not send the specified application/json header // (especially after a redirect) // so we will send application/json always for now // (as we don't support this API any other way right now) if (true /* TODO: This is a hack */) { r = new StringRepresentation(json.toString(), MediaType.APPLICATION_JSON); } else if (MediaType.APPLICATION_JSON.equals(variant.getMediaType()) || MediaType.APPLICATION_JAVASCRIPT.equals(variant.getMediaType()) || MediaType.TEXT_JAVASCRIPT.equals(variant.getMediaType())) { r = new StringRepresentation(json.toString(), variant.getMediaType()); // TODO: make this output streaming! (this library does not support it, which is fairly // crazy!) } else if (MediaType.APPLICATION_XML.equals(variant.getMediaType()) || MediaType.TEXT_XML.equals(variant.getMediaType())) { r = new StringRepresentation(new XMLSerializer().write(json), variant.getMediaType()); } else if (MediaType.TEXT_PLAIN.equals(variant.getMediaType()) || MediaType.TEXT_HTML.equals(variant.getMediaType())) { r = new StringRepresentation(json.toString(4), variant.getMediaType()); } else { getResponse().setStatus(Status.CLIENT_ERROR_UNSUPPORTED_MEDIA_TYPE); } r.setCharacterSet(CharacterSet.UTF_8); return r; }
public void testAccMediaType() throws IOException { Response response = get("accMediaTypes", MediaType.TEXT_PLAIN); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("[" + MediaType.TEXT_PLAIN.toString() + "]", response.getEntity().getText()); ClientInfo clientInfo = new ClientInfo(); clientInfo.getAcceptedMediaTypes().add(new Preference<MediaType>(MediaType.TEXT_PLAIN, 0.5f)); clientInfo.getAcceptedMediaTypes().add(new Preference<MediaType>(MediaType.TEXT_HTML, 0.8f)); clientInfo.getAcceptedMediaTypes().add(new Preference<MediaType>(MediaType.TEXT_XML, 0.2f)); response = get("accMediaTypes", clientInfo); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals( "[" + MediaType.TEXT_HTML.toString() + ", " + MediaType.TEXT_PLAIN.toString() + ", " + MediaType.TEXT_XML.toString() + "]", response.getEntity().getText()); }
@Override public void write(OutputStream outputStream) throws IOException { if (isMultipart()) { for (FormData data : getEntries()) { // Write the boundary line outputStream.write(("--" + getMultipartBoundary()).getBytes()); HeaderUtils.writeCRLF(outputStream); // Write the optional content type header line if (MediaType.TEXT_PLAIN.equals(data.getMediaType())) { // Write the content disposition header line String line = "Content-Disposition: form-data; name=\"" + data.getName() + "\""; outputStream.write(line.getBytes()); HeaderUtils.writeCRLF(outputStream); } else { // Write the content disposition header line String line = "Content-Disposition: form-data; name=\"" + data.getName() + "\"; filename=\"" + data.getFilename() + "\""; outputStream.write(line.getBytes()); HeaderUtils.writeCRLF(outputStream); // Write the content type header line line = "Content-Type: " + ContentType.writeHeader(data.getValueRepresentation()); outputStream.write(line.getBytes()); HeaderUtils.writeCRLF(outputStream); } // Write the data content HeaderUtils.writeCRLF(outputStream); data.getValueRepresentation().write(outputStream); HeaderUtils.writeCRLF(outputStream); } // Write the final boundary line outputStream.write(("--" + getMultipartBoundary() + "--").getBytes()); HeaderUtils.writeCRLF(outputStream); } else { Representation formRep = new StringRepresentation( getQueryString(), MediaType.APPLICATION_WWW_FORM, null, CharacterSet.UTF_8); formRep.write(outputStream); } }
public void XtestSimpleSecretWithParams() throws IOException { NuxeoServer nxServer = new NuxeoServer("http://127.0.0.1:8080/nuxeo"); nxServer.setAuthType(NuxeoServer.AUTH_TYPE_SECRET); nxServer.setSharedSecretAuthentication("Administrator", "nuxeo5secretkey"); List<String> pathParams = Arrays.asList("execQueryModel", "USER_DOCUMENTS"); Map<String, String> queryParams = new HashMap<String, String>(); queryParams.put("QP1", "$USER"); queryParams.put("format", "JSON"); Representation res = nxServer.doRestletGetCall(pathParams, queryParams); System.out.println(res.getText()); assertEquals(res.getMediaType().getName(), MediaType.TEXT_PLAIN.getName()); queryParams.put("format", "XML"); res = nxServer.doRestletGetCall(pathParams, queryParams); System.out.println(res.getText()); assertEquals(res.getMediaType().getName(), MediaType.TEXT_XML.getName()); }