前言
描述:本文主要是记录后端代码根据url获取文件时发生报错的解决方案
一、遇到的报错
Serverreturned HTTPresponse code: 400 for URL
分析:由于我上传的Excel文件中存在空格符,导致代码在获取文件时发生报错
1、项目初始代码
public Workbook generateExcelObject(String fileUrl) {
try {
// 获取文件数据
URL url = new URL(fileUrl);
InputStream inputStream = url.openStream();
if (!(inputStream.markSupported())) {
inputStream = new PushbackInputStream(inputStream, 8);
}
// 生成excel对象
Workbook book = WorkbookFactory.create(inputStream);
return book;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
二、解决方案
1、直接替换
URL url = new URL(fileUrl.replace(" ", "%20"));
2、使用 URLEncoder.encode
// 对文件链接中的空格进行URL编码处理
String encodedUrl = URLEncoder.encode(fileUrl, "UTF-8");
总结
实际测下来,方法1 可以成功,方法2不行,依然会在 InputStream inputStream = url.openStream(); 发生报错。原因是方法2把//也转为字符了,然后报错没有协议
本文讲述了后端开发中,通过URL获取Excel文件时遇到400错误的解决方案,主要问题源于文件名中的空格。尝试直接替换空格和URL编码处理,发现只有替换方法能成功避开InputStream错误。
2125

被折叠的 条评论
为什么被折叠?



