package com.dy.pipIrrGlobal.config; import org.springframework.http.HttpInputMessage; import org.springframework.http.HttpOutputMessage; import org.springframework.http.MediaType; import org.springframework.http.converter.AbstractHttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotWritableException; import org.springframework.util.StreamUtils; import java.io.IOException; import java.nio.charset.StandardCharsets; /** * @Author: liurunyu * @Date: 2024/8/28 15:58 * @Description */ public class ByteArrayHttpMessageConverter extends AbstractHttpMessageConverter { public ByteArrayHttpMessageConverter() { super(MediaType.APPLICATION_OCTET_STREAM, new MediaType("application", "octet-stream", StandardCharsets.UTF_8)); } @Override protected boolean supports(Class clazz) { return byte[].class == clazz; } @Override protected byte[] readInternal(Class clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { // Read the byte array from the input message return StreamUtils.copyToByteArray(inputMessage.getBody()); } @Override protected void writeInternal(byte[] bytes, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { // Write the byte array to the output message outputMessage.getBody().write(bytes); } }