Java 如何查找页面的内容长度<;实体>;要作为http头传递吗?

Java 如何查找页面的内容长度<;实体>;要作为http头传递吗?,java,spring-boot,netflix-eureka,netflix-zuul,Java,Spring Boot,Netflix Eureka,Netflix Zuul,我和Netflix Eureka一起使用spring boot。我需要找到页面的总长度来设置HTTP响应头中的内容长度。 我的控制器是这样的 Page examplePage=null; examplePage=exampleService.GetFunction(请求,参数); HttpHeaders=新的HttpHeaders(); headers.setContentLength(???); 返回新的响应属性(第页,HttpHeaders,HttpStatus.OK); 有人能帮忙吗

我和Netflix Eureka一起使用spring boot。我需要找到页面的总长度来设置HTTP响应头中的内容长度。 我的控制器是这样的

Page examplePage=null;
examplePage=exampleService.GetFunction(请求,参数);
HttpHeaders=新的HttpHeaders();
headers.setContentLength(???);
返回新的响应属性(第页,HttpHeaders,HttpStatus.OK);

有人能帮忙吗

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = null;
try {
  out = new ObjectOutputStream(bos);   
  out.writeObject(yourObject);
  out.flush();
  byte[] yourBytes = bos.toByteArray();
  
} finally {
  try {
    bos.close();
  } catch (IOException ex) {
    // ignore close exception
  }
}

那么您需要的是yourBytes.length

有什么理由要设置此值吗?Spring不应该处理这个问题吗?它不是默认设置的,或者我不知道我可以提供的默认设置吗?你是对的。Spring当前添加了“传输编码”标题。您可以查看
ShallowETagHeaderFilter
。看到代码为我工作非常感谢,但有一件事是,当我试图在postman中调用该方法时,它在几分钟后返回了所需的响应(这是不正常的,因为只需要几秒钟),但响应代码是400而不是200,而且测试单元也没有问题,这是邮递员特有的问题吗?您应该创建一个新问题,并提供诸如日志、代码片段、上下文等信息
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = null;
try {
  out = new ObjectOutputStream(bos);   
  out.writeObject(yourObject);
  out.flush();
  byte[] yourBytes = bos.toByteArray();
  
} finally {
  try {
    bos.close();
  } catch (IOException ex) {
    // ignore close exception
  }
}