JAX-RS – Modificar el encabezado de la respuesta

febrero 22, 2012

Necesitaba agregar un encabezado a un servicio REST de acuerdo a un parámetro. Para poder hacer esto, necesitas tener acceso a un objeto javax.ws.rs.core.Response de la siguiente manera

    @GET
    @Path("descarga")
    public Response getContenidoDocumento(@QueryParam("documento")String idDocumento,@QueryParam("formato")String formato){
        try {
            if (formato == null)
                formato = "pdf";
            Documento documento = Documento.getDocumento(idDocumento);
                if (formato.equals("pdf")) {
                        return Response.ok(documento.getPDF(),"application/pdf").header("Content-Disposition",
                                "attachment;filename=documento.pdf").build();
                } else if (formato.equals("rtf")) {
                        return Response.ok(documento.getRTF(),"application/rtf").header("Content-Disposition",
                                "attachment;filename=documentos.rtf").build();
                }
                return Response.status(Status.BAD_REQUEST).build();
        } catch (Exception exc) {
            throw new WebApplicationException(exc, Status.INTERNAL_SERVER_ERROR);
        }
    }
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: