示例#1
0
  @Override
  public String getMessageBody() {
    for (MmsPart part : getParts()) {
      if ("text/plain".equals(part.getContentType())) {
        return part.getText();
      }
    }

    return "";
  }
示例#2
0
  @Override
  protected ForwarderTask getForwarderTask() {
    List<FormBodyPart> formParts = new ArrayList<FormBodyPart>();

    int i = 0;

    JSONArray partsMetadata = new JSONArray();

    for (MmsPart part : getParts()) {
      String formFieldName = "part" + i;
      String text = part.getText();
      String contentType = part.getContentType();
      String partName = part.getName();

      ContentBody body;

      if (text != null) {
        if (contentType != null) {
          contentType += "; charset=UTF-8";
        }
        body = new ByteArrayBody(text.getBytes(), contentType, partName);
      } else {
        // avoid using InputStreamBody because it forces the HTTP request
        // to be sent using Transfer-Encoding: chunked, which is not
        // supported by some web servers (including nginx)

        try {
          body = new ByteArrayBody(part.getData(), contentType, partName);
        } catch (IOException ex) {
          app.logError("Error reading data for " + part.toString(), ex);
          continue;
        }
      }

      try {
        JSONObject partMetadata = new JSONObject();
        partMetadata.put("name", formFieldName);
        partMetadata.put("cid", part.getContentId());
        partMetadata.put("type", part.getContentType());
        partMetadata.put("filename", part.getName());
        partsMetadata.put(partMetadata);
      } catch (JSONException ex) {
        app.logError("Error encoding MMS part metadata for " + part.toString(), ex);
        continue;
      }

      formParts.add(new FormBodyPart(formFieldName, body));
      i++;
    }

    ForwarderTask task = super.getForwarderTask();
    task.addParam("mms_parts", partsMetadata.toString());
    task.setFormParts(formParts);
    return task;
  }
示例#3
0
  @Override
  public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("MMS id=");
    builder.append(messagingId);
    builder.append(" from=");
    builder.append(from);
    builder.append(":\n");

    for (MmsPart part : getParts()) {
      builder.append(" ");
      builder.append(part.toString());
      builder.append("\n");
    }
    return builder.toString();
  }