From 96e377f414cd1526823e8833834146cb1434b557 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 11 Sep 2019 08:22:28 +0800 Subject: [PATCH] add default value for content-type --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/http/HttpRequest.java | 3 ++- .../src/main/java/cn/hutool/http/HttpUtil.java | 14 ++++++++++++++ .../java/cn/hutool/http/test/HttpUtilTest.java | 6 ++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3ec32365..4a6c0ccc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ * 【core】 ZipUtil增加FileFilter参数的重载,支持文件过滤(issue#I11RTP@Gitee) * 【http】 HttpRequest增加setChunkedStreamingMode方法(issue#525@Github) * 【setting】 SettingLoader支持自定义分隔符 +* 【http】 Content-Type添加默认值(issue#I11YHI@Gitee) ### Bug修复 * 【core】 修复NetUtil.getUsableLocalPort问题(pr#69@Gitee) diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpRequest.java b/hutool-http/src/main/java/cn/hutool/http/HttpRequest.java index 5d1077bf6..6abd5453a 100644 --- a/hutool-http/src/main/java/cn/hutool/http/HttpRequest.java +++ b/hutool-http/src/main/java/cn/hutool/http/HttpRequest.java @@ -1136,7 +1136,8 @@ public class HttpRequest extends HttpBase { final StringBuilder builder = StrUtil.builder().append("--").append(BOUNDARY).append(StrUtil.CRLF); final String fileName = resource.getName(); builder.append(StrUtil.format(CONTENT_DISPOSITION_FILE_TEMPLATE, formFieldName, ObjectUtil.defaultIfNull(fileName, formFieldName))); - builder.append(StrUtil.format(CONTENT_TYPE_FILE_TEMPLATE, HttpUtil.getMimeType(fileName))); + // 根据name的扩展名指定互联网媒体类型,默认二进制流数据 + builder.append(StrUtil.format(CONTENT_TYPE_FILE_TEMPLATE, HttpUtil.getMimeType(fileName, "application/octet-stream"))); IoUtil.write(out, this.charset, false, builder); InputStream in = null; try { diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java index 63d807063..42fbb5770 100644 --- a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java +++ b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java @@ -26,6 +26,7 @@ import cn.hutool.core.io.StreamProgress; import cn.hutool.core.map.MapUtil; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; @@ -726,6 +727,19 @@ public class HttpUtil { } return content; } + + /** + * 根据文件扩展名获得MimeType + * + * @param filePath 文件路径或文件名 + * @param defaultValue 当获取MimeType为null时的默认值 + * @return MimeType + * @see FileUtil#getMimeType(String) + * @since 4.6.5 + */ + public static String getMimeType(String filePath, String defaultValue) { + return ObjectUtil.defaultIfNull(getMimeType(filePath), defaultValue); + } /** * 根据文件扩展名获得MimeType diff --git a/hutool-http/src/test/java/cn/hutool/http/test/HttpUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/test/HttpUtilTest.java index 420e9b369..9c00052cc 100644 --- a/hutool-http/src/test/java/cn/hutool/http/test/HttpUtilTest.java +++ b/hutool-http/src/test/java/cn/hutool/http/test/HttpUtilTest.java @@ -263,4 +263,10 @@ public class HttpUtilTest { String encodeResult = HttpUtil.normalizeParams("参数", CharsetUtil.CHARSET_UTF_8); Assert.assertEquals("%E5%8F%82%E6%95%B0", encodeResult); } + + @Test + public void getMimeTypeTest() { + String mimeType = HttpUtil.getMimeType("aaa.aaa"); + Assert.assertNull(mimeType); + } }