Example #1
0
  @Override
  public Response serve(IHTTPSession session) {
    Map<String, List<String>> decodedQueryParameters =
        decodeParameters(session.getQueryParameterString());

    StringBuilder sb = new StringBuilder();
    sb.append("<html>");
    sb.append("<head><title>Debug Server</title></head>");
    sb.append("<body>");
    sb.append("<h1>Debug Server</h1>");

    sb.append("<p><blockquote><b>URI</b> = ")
        .append(String.valueOf(session.getUri()))
        .append("<br />");

    sb.append("<b>Method</b> = ")
        .append(String.valueOf(session.getMethod()))
        .append("</blockquote></p>");

    sb.append("<h3>Headers</h3><p><blockquote>")
        .append(toString(session.getHeaders()))
        .append("</blockquote></p>");

    sb.append("<h3>Parms</h3><p><blockquote>")
        .append(toString(session.getParms()))
        .append("</blockquote></p>");

    sb.append("<h3>Parms (multi values?)</h3><p><blockquote>")
        .append(toString(decodedQueryParameters))
        .append("</blockquote></p>");

    try {
      Map<String, String> files = new HashMap<String, String>();
      session.parseBody(files);
      sb.append("<h3>Files</h3><p><blockquote>")
          .append(toString(files))
          .append("</blockquote></p>");
    } catch (Exception e) {
      e.printStackTrace();
    }

    sb.append("</body>");
    sb.append("</html>");
    return newFixedLengthResponse(sb.toString());
  }
  /**
   * Override this to customize the server.
   *
   * <p>
   *
   * <p>(By default, this delegates to serveFile() and allows directory listing.)
   *
   * @param session The HTTP session
   * @return HTTP response, see class Response for details
   */
  public Response serve(IHTTPSession session) {
    Map<String, String> files = new HashMap<String, String>();
    Method method = session.getMethod();
    if (Method.PUT.equals(method) || Method.POST.equals(method)) {
      try {
        session.parseBody(files);
      } catch (IOException ioe) {
        return new Response(
            Response.Status.INTERNAL_ERROR,
            MIME_PLAINTEXT,
            "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage());
      } catch (ResponseException re) {
        return new Response(re.getStatus(), MIME_PLAINTEXT, re.getMessage());
      }
    }

    Map<String, String> parms = session.getParms();
    parms.put(QUERY_STRING_PARAMETER, session.getQueryParameterString());
    return serve(session.getUri(), method, session.getHeaders(), parms, files);
  }