0
我正在使用Apache POI,并试图发送xlsx
文件作为HTTP请求并将其作为响应返回。我正在使用jayway restassured
进行HTTP请求。使用Apache POI将byteArray转换为XSSFWorkbook
这里是我发送请求
File file = new File("path");
String response = given().multipart(file).when().post("URL").getBody().asString();
byte[] bytes = response.getBytes("ISO-8859-1");
InputStream stream = new ByteArrayOutputStream(bytes);
try
{
XSSFWorkbook workbook = new XSSFWorkbook(stream);
}
catch(Exception e){
e.printStackTrace();
}
这里是为请求生成响应
XSSFWorkbook workBook; //this workBook has the workbook sent as HTTP request
//code to make changes in workBook
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
workBook.write(outStream);
byte[] byteArray = outStream.toByteArray();
String responseBody = new String(byteArray, "ISO-8859-1");
context.response().putHeader("Content-Type", "multipart/form-data").setStatusCode(200).end(responseBody);
因此,代码的代码的一部分,我试图做的发送一个xlsx
文件作为请求进行一些更改并将其作为字符串响应返回,将其转换回xssfworkbook。当转换后,我在下面的线 -
XSSFWorkbook workbook = new XSSFWorkbook(stream);
的错误,我得到得到错误是
java.util.zip.ZipException: invalid code lengths set