Example usage for org.springframework.http.converter HttpMessageConverter write

List of usage examples for org.springframework.http.converter HttpMessageConverter write

Introduction

In this page you can find the example usage for org.springframework.http.converter HttpMessageConverter write.

Prototype

void write(T t, @Nullable MediaType contentType, HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException;

Source Link

Document

Write an given object to the given output message.

Usage

From source file:com.httpMessageConvert.FormHttpMessageConverter.java

@SuppressWarnings("unchecked")
private void writePart(String name, HttpEntity partEntity, OutputStream os) throws IOException {
    Object partBody = partEntity.getBody();
    Class<?> partType = partBody.getClass();
    HttpHeaders partHeaders = partEntity.getHeaders();
    MediaType partContentType = partHeaders.getContentType();
    for (HttpMessageConverter messageConverter : partConverters) {
        if (messageConverter.canWrite(partType, partContentType)) {
            HttpOutputMessage multipartOutputMessage = new MultipartHttpOutputMessage(os);
            multipartOutputMessage.getHeaders().setContentDispositionFormData(name, getFilename(partBody));
            if (!partHeaders.isEmpty()) {
                multipartOutputMessage.getHeaders().putAll(partHeaders);
            }/*from   w w w  .ja va 2 s  . co  m*/
            messageConverter.write(partBody, partContentType, multipartOutputMessage);
            return;
        }
    }
    throw new HttpMessageNotWritableException(
            "Could not write request: no suitable HttpMessageConverter found for request type ["
                    + partType.getName() + "]");
}

From source file:org.infoscoop.api.oauth2.provider.ISOAuth2ExceptionRenderer.java

@SuppressWarnings({ "unchecked", "rawtypes" })
private void writeWithMessageConverters(Object returnValue, HttpInputMessage inputMessage,
        HttpOutputMessage outputMessage, HttpStatus status, HttpServletRequest request)
        throws IOException, HttpMediaTypeNotAcceptableException {
    log.info(request.getRemoteAddr() + " " + returnValue + " " + status.value());

    Class<?> returnValueType = returnValue.getClass();
    List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();

    String fileType = request.getPathInfo();
    MediaType acceptedMediaType = MediaType.APPLICATION_JSON;
    if (fileType.substring(fileType.lastIndexOf(".") + 1).equals("xml"))
        acceptedMediaType = MediaType.APPLICATION_XML;

    for (HttpMessageConverter messageConverter : messageConverters) {
        if (messageConverter.canWrite(returnValueType, acceptedMediaType)) {
            messageConverter.write(returnValue, acceptedMediaType, outputMessage);
            if (log.isDebugEnabled()) {
                MediaType contentType = outputMessage.getHeaders().getContentType();
                if (contentType == null) {
                    contentType = acceptedMediaType;
                }/*from ww w .  j a v  a2 s  .  c o m*/
                log.debug("Written [" + returnValue + "] as \"" + contentType + "\" using [" + messageConverter
                        + "]");
            }
            return;
        }
    }

    for (HttpMessageConverter messageConverter : messageConverters) {
        allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
    }
    throw new HttpMediaTypeNotAcceptableException(allSupportedMediaTypes);
}

From source file:org.springframework.cloud.netflix.feign.support.SpringEncoder.java

@Override
public void encode(Object requestBody, Type bodyType, RequestTemplate request) throws EncodeException {
    // template.body(conversionService.convert(object, String.class));
    if (requestBody != null) {
        Class<?> requestType = requestBody.getClass();
        Collection<String> contentTypes = request.headers().get("Content-Type");

        MediaType requestContentType = null;
        if (contentTypes != null && !contentTypes.isEmpty()) {
            String type = contentTypes.iterator().next();
            requestContentType = MediaType.valueOf(type);
        }// w  w  w  . j  av a 2  s  . co  m

        for (HttpMessageConverter<?> messageConverter : this.messageConverters.getObject().getConverters()) {
            if (messageConverter.canWrite(requestType, requestContentType)) {
                if (log.isDebugEnabled()) {
                    if (requestContentType != null) {
                        log.debug("Writing [" + requestBody + "] as \"" + requestContentType + "\" using ["
                                + messageConverter + "]");
                    } else {
                        log.debug("Writing [" + requestBody + "] using [" + messageConverter + "]");
                    }

                }

                FeignOutputMessage outputMessage = new FeignOutputMessage(request);
                try {
                    @SuppressWarnings("unchecked")
                    HttpMessageConverter<Object> copy = (HttpMessageConverter<Object>) messageConverter;
                    copy.write(requestBody, requestContentType, outputMessage);
                } catch (IOException ex) {
                    throw new EncodeException("Error converting request body", ex);
                }
                // clear headers
                request.headers(null);
                // converters can modify headers, so update the request
                // with the modified headers
                request.headers(getHeaders(outputMessage.getHeaders()));

                // do not use charset for binary data
                if (messageConverter instanceof ByteArrayHttpMessageConverter) {
                    request.body(outputMessage.getOutputStream().toByteArray(), null);
                } else {
                    request.body(outputMessage.getOutputStream().toByteArray(), Charset.forName("UTF-8"));
                }
                return;
            }
        }
        String message = "Could not write request: no suitable HttpMessageConverter "
                + "found for request type [" + requestType.getName() + "]";
        if (requestContentType != null) {
            message += " and content type [" + requestContentType + "]";
        }
        throw new EncodeException(message);
    }
}

From source file:org.springframework.security.oauth2.provider.error.DefaultOAuth2ExceptionRenderer.java

@SuppressWarnings({ "unchecked", "rawtypes" })
private void writeWithMessageConverters(Object returnValue, HttpInputMessage inputMessage,
        HttpOutputMessage outputMessage) throws IOException, HttpMediaTypeNotAcceptableException {
    List<MediaType> acceptedMediaTypes = inputMessage.getHeaders().getAccept();
    if (acceptedMediaTypes.isEmpty()) {
        acceptedMediaTypes = Collections.singletonList(MediaType.ALL);
    }//from  w  w w.  j  av  a2s.c o  m
    MediaType.sortByQualityValue(acceptedMediaTypes);
    Class<?> returnValueType = returnValue.getClass();
    List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();
    for (MediaType acceptedMediaType : acceptedMediaTypes) {
        for (HttpMessageConverter messageConverter : messageConverters) {
            if (messageConverter.canWrite(returnValueType, acceptedMediaType)) {
                messageConverter.write(returnValue, acceptedMediaType, outputMessage);
                if (logger.isDebugEnabled()) {
                    MediaType contentType = outputMessage.getHeaders().getContentType();
                    if (contentType == null) {
                        contentType = acceptedMediaType;
                    }
                    logger.debug("Written [" + returnValue + "] as \"" + contentType + "\" using ["
                            + messageConverter + "]");
                }
                return;
            }
        }
    }
    for (HttpMessageConverter messageConverter : messageConverters) {
        allSupportedMediaTypes.addAll(messageConverter.getSupportedMediaTypes());
    }
    throw new HttpMediaTypeNotAcceptableException(allSupportedMediaTypes);
}

From source file:org.thingsboard.server.controller.AbstractControllerTest.java

@SuppressWarnings("unchecked")
protected String json(Object o) throws IOException {
    MockHttpOutputMessage mockHttpOutputMessage = new MockHttpOutputMessage();

    HttpMessageConverter converter = o instanceof String ? stringHttpMessageConverter
            : mappingJackson2HttpMessageConverter;
    converter.write(o, MediaType.APPLICATION_JSON, mockHttpOutputMessage);
    return mockHttpOutputMessage.getBodyAsString();
}