Example #1
0
  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);
    }
  }
Example #4
0
  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());
  }