Example usage for org.apache.http.entity AbstractHttpEntity setContentType

List of usage examples for org.apache.http.entity AbstractHttpEntity setContentType

Introduction

In this page you can find the example usage for org.apache.http.entity AbstractHttpEntity setContentType.

Prototype

public void setContentType(String str) 

Source Link

Usage

From source file:com.wifi.brainbreaker.mydemo.http.ModAssetServer.java

public void handle(final HttpRequest request, final HttpResponse response, final HttpContext context)
        throws HttpException, IOException {
    AbstractHttpEntity body = null;

    final String method = request.getRequestLine().getMethod().toUpperCase(Locale.ENGLISH);
    if (!method.equals("GET") && !method.equals("HEAD") && !method.equals("POST")) {
        throw new MethodNotSupportedException(method + " method not supported");
    }// w ww .jav  a2  s .c o m

    final String url = URLDecoder.decode(request.getRequestLine().getUri());
    if (request instanceof HttpEntityEnclosingRequest) {
        HttpEntity entity = ((HttpEntityEnclosingRequest) request).getEntity();
        byte[] entityContent = EntityUtils.toByteArray(entity);
        Log.d(TAG, "Incoming entity content (bytes): " + entityContent.length);
    }

    final String location = "www" + (url.equals("/") ? "/index.htm" : url);
    response.setStatusCode(HttpStatus.SC_OK);

    try {
        Log.i(TAG, "Requested: \"" + url + "\"");

        // Compares the Last-Modified date header (if present) with the If-Modified-Since date
        if (request.containsHeader("If-Modified-Since")) {
            try {
                Date date = DateUtils.parseDate(request.getHeaders("If-Modified-Since")[0].getValue());
                if (date.compareTo(mServer.mLastModified) <= 0) {
                    // The file has not been modified
                    response.setStatusCode(HttpStatus.SC_NOT_MODIFIED);
                    return;
                }
            } catch (DateParseException e) {
                e.printStackTrace();
            }
        }

        // We determine if the asset is compressed
        try {
            AssetFileDescriptor afd = mAssetManager.openFd(location);

            // The asset is not compressed
            FileInputStream fis = new FileInputStream(afd.getFileDescriptor());
            fis.skip(afd.getStartOffset());
            body = new InputStreamEntity(fis, afd.getDeclaredLength());

            Log.d(TAG, "Serving uncompressed file " + "www" + url);

        } catch (FileNotFoundException e) {

            // The asset may be compressed
            // AAPT compresses assets so first we need to uncompress them to determine their length
            InputStream stream = mAssetManager.open(location, AssetManager.ACCESS_STREAMING);
            ByteArrayOutputStream buffer = new ByteArrayOutputStream(64000);
            byte[] tmp = new byte[4096];
            int length = 0;
            while ((length = stream.read(tmp)) != -1)
                buffer.write(tmp, 0, length);
            body = new InputStreamEntity(new ByteArrayInputStream(buffer.toByteArray()), buffer.size());
            stream.close();

            Log.d(TAG, "Serving compressed file " + "www" + url);

        }

        body.setContentType(getMimeMediaType(url) + "; charset=UTF-8");
        response.addHeader("Last-Modified", DateUtils.formatDate(mServer.mLastModified));

    } catch (IOException e) {
        // File does not exist
        response.setStatusCode(HttpStatus.SC_NOT_FOUND);
        body = new EntityTemplate(new ContentProducer() {
            public void writeTo(final OutputStream outstream) throws IOException {
                OutputStreamWriter writer = new OutputStreamWriter(outstream, "UTF-8");
                writer.write("<html><body><h1>");
                writer.write("File ");
                writer.write("www" + url);
                writer.write(" not found");
                writer.write("</h1></body></html>");
                writer.flush();
            }
        });
        Log.d(TAG, "File " + "www" + url + " not found");
        body.setContentType("text/html; charset=UTF-8");
    }

    response.setEntity(body);

}

From source file:net.facework.core.http.ModAssetServer.java

@Override
public void handle(final HttpRequest request, final HttpResponse response, final HttpContext context)
        throws HttpException, IOException {
    AbstractHttpEntity body = null;

    final String method = request.getRequestLine().getMethod().toUpperCase(Locale.ENGLISH);
    if (!method.equals("GET") && !method.equals("HEAD") && !method.equals("POST")) {
        throw new MethodNotSupportedException(method + " method not supported");
    }//from   w  w  w. j av a  2s.co m

    final String url = URLDecoder.decode(request.getRequestLine().getUri());
    if (request instanceof HttpEntityEnclosingRequest) {
        HttpEntity entity = ((HttpEntityEnclosingRequest) request).getEntity();
        byte[] entityContent = EntityUtils.toByteArray(entity);
        Log.d(TAG, "Incoming entity content (bytes): " + entityContent.length);
    }

    final String location = "www" + (url.equals("/") ? "/index.htm" : url);
    response.setStatusCode(HttpStatus.SC_OK);

    try {
        Log.i(TAG, "Requested: \"" + url + "\"");

        // Compares the Last-Modified date header (if present) with the If-Modified-Since date
        if (request.containsHeader("If-Modified-Since")) {
            try {
                Date date = DateUtils.parseDate(request.getHeaders("If-Modified-Since")[0].getValue());
                if (date.compareTo(mServer.mLastModified) <= 0) {
                    // The file has not been modified
                    response.setStatusCode(HttpStatus.SC_NOT_MODIFIED);
                    return;
                }
            } catch (DateParseException e) {
                e.printStackTrace();
            }
        }

        // We determine if the asset is compressed
        try {
            AssetFileDescriptor afd = mAssetManager.openFd(location);

            // The asset is not compressed
            FileInputStream fis = new FileInputStream(afd.getFileDescriptor());
            fis.skip(afd.getStartOffset());
            body = new InputStreamEntity(fis, afd.getDeclaredLength());

            Log.d(TAG, "Serving uncompressed file " + "www" + url);

        } catch (FileNotFoundException e) {

            // The asset may be compressed
            // AAPT compresses assets so first we need to uncompress them to determine their length
            InputStream stream = mAssetManager.open(location, AssetManager.ACCESS_STREAMING);
            ByteArrayOutputStream buffer = new ByteArrayOutputStream(64000);
            byte[] tmp = new byte[4096];
            int length = 0;
            while ((length = stream.read(tmp)) != -1)
                buffer.write(tmp, 0, length);
            body = new InputStreamEntity(new ByteArrayInputStream(buffer.toByteArray()), buffer.size());
            stream.close();

            Log.d(TAG, "Serving compressed file " + "www" + url);

        }

        body.setContentType(getMimeMediaType(url) + "; charset=UTF-8");
        response.addHeader("Last-Modified", DateUtils.formatDate(mServer.mLastModified));

    } catch (IOException e) {
        // File does not exist
        response.setStatusCode(HttpStatus.SC_NOT_FOUND);
        body = new EntityTemplate(new ContentProducer() {
            @Override
            public void writeTo(final OutputStream outstream) throws IOException {
                OutputStreamWriter writer = new OutputStreamWriter(outstream, "UTF-8");
                writer.write("<html><body><h1>");
                writer.write("File ");
                writer.write("www" + url);
                writer.write(" not found");
                writer.write("</h1></body></html>");
                writer.flush();
            }
        });
        Log.d(TAG, "File " + "www" + url + " not found");
        body.setContentType("text/html; charset=UTF-8");
    }

    response.setEntity(body);

}

From source file:ste.web.http.api.ApiHandler.java

/**
 * Note that we expect response to have a body entity set (@see HttpEntiry)
 * //w w w. j  av a2 s.co  m
 * @param request
 * @param response
 * @param context
 * 
 * @throws HttpException
 * @throws IOException 
 */
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context)
        throws HttpException, IOException {
    RRequest rr = null;
    File actionScript = null, applicationScript = null;

    try {
        rr = new RRequest(reduce(request.getRequestLine()));

        if (log.isLoggable(Level.FINE)) {
            log.fine(String.format("serving %s", rr.getPath()));
        }

        applicationScript = new File(apiroot, getApplicationScript(rr));
        actionScript = new File(apiroot, getActionScript(rr));

        if (log.isLoggable(Level.FINE)) {
            log.fine(String.format("application script path: %s", applicationScript.getAbsolutePath()));
            log.fine(String.format("action script path: %s", actionScript.getAbsolutePath()));
        }

        Interpreter bsh = new Interpreter();
        BeanShellUtils.setup(bsh, request, response, (HttpSessionContext) context);
        bsh.set(VAR_SOURCE, actionScript.getAbsolutePath());
        bsh.set(VAR_RREQUEST, rr);
        if (applicationScript.exists()) {
            bsh.eval(BeanShellUtils.getScript(applicationScript));
        }
        bsh.eval(BeanShellUtils.getScript(actionScript));

        Object body = bsh.get(rr.getHandler());

        AbstractHttpEntity e = (AbstractHttpEntity) response.getEntity();
        if (e.getContentType() == null) {
            e.setContentType("application/json");
        }

        if (body != null) {
            if (body instanceof File) {
                File f = (File) body;
                e = new FileEntity(f);
                response.setEntity(e);
                String mimeType = MimeUtils.getInstance().getMimeType(f);

                e.setContentType(
                        MimeUtils.MIME_UNKNOWN.equals(mimeType) ? "application/octet-stream" : mimeType);
            } else {
                String bodyString = String.valueOf(body);
                byte[] buf = bodyString.getBytes();
                ByteArrayInputStream is = new ByteArrayInputStream(buf);
                BasicHttpEntity basicEntity = (BasicHttpEntity) e;
                basicEntity.setContent(is);
                basicEntity.setContentLength(buf.length);
                if (e.getContentType() == null) {
                    e.setContentType("application/json");
                }
            }
        }

        BeanShellUtils.cleanup(bsh, request);
        BeanShellUtils.setVariablesAttributes(bsh, context);
    } catch (FileNotFoundException e) {
        response.setStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_NOT_FOUND,
                "Script " + actionScript + " not found.");
    } catch (EvalError x) {
        String msg = x.getMessage();

        if (log.isLoggable(Level.SEVERE)) {
            log.severe(String.format("error evaluating: %s: %s", actionScript, msg));
            log.throwing(getClass().getName(), "handleError", x);
        }
        //
        // We shall not expose to the client any details of a server error
        //
        throw new HttpException("server erorr processing the resource - see server log for details", x);
    } catch (URISyntaxException x) {
        response.setStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_BAD_REQUEST,
                StringEscapeUtils.escapeHtml4(x.getMessage()));
    } catch (Exception x) {
        response.setStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_INTERNAL_SERVER_ERROR,
                StringEscapeUtils.escapeHtml4(x.getMessage()));
    }
}