public static String post(String name, Paste paste, ReportFormat format, ExpireDate expireDate) {
    if (name == null) name = "";

    String report_url = "";

    try {
      URL urls = new URL(POST_URL);
      HttpURLConnection conn = (HttpURLConnection) urls.openConnection();
      conn.setConnectTimeout(5000);
      conn.setReadTimeout(5000);
      conn.setRequestMethod("POST");
      conn.addRequestProperty("Content-type", "application/x-www-form-urlencoded");
      conn.setInstanceFollowRedirects(false);
      conn.setDoOutput(true);
      OutputStream out = conn.getOutputStream();

      byte[] data =
          ("api_option=paste"
                  + "&api_dev_key="
                  + URLEncoder.encode(API_KEY, "utf-8")
                  + "&api_paste_code="
                  + URLEncoder.encode(paste.toString(), "utf-8")
                  + "&api_paste_private="
                  + URLEncoder.encode("1", "utf-8")
                  + // 1 = unlisted, 0 = public, 2 = private (need to be logged in for that)
                  "&api_paste_name="
                  + URLEncoder.encode(name, "utf-8")
                  + "&api_paste_expire_date="
                  + URLEncoder.encode(expireDate.toString(), "utf-8")
                  + "&api_paste_format="
                  + URLEncoder.encode(format.toString(), "utf-8")
                  + "&api_user_key="
                  + URLEncoder.encode("", "utf-8"))
              .getBytes();

      out.write(data);
      out.flush();
      out.close();

      if (conn.getResponseCode() == 200) {
        InputStream receive = conn.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(receive));
        String line;
        StringBuffer response = new StringBuffer();
        while ((line = reader.readLine()) != null) {
          response.append(line);
          response.append("\r\n");
        }
        reader.close();

        String result = response.toString().trim();

        if (!result.contains("http://")) {
          report_url = "Failed to post! (returned result: " + result;
        } else {
          report_url = result.trim();
        }
      } else {
        report_url = "Failed to post!";
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return report_url;
  }