如何在Mirth Connect中上传multipart格式的.CSV文件
Mirth Connect multipart/form-data 格式上传CSV文件解决方案
前置配置调整
- 打开对应通道的HTTP Sender连接器设置,在基本设置标签页将
Method设为接口要求的请求方法(通常为POST/PUT) Content Type直接填写multipart/form-data,不要手动加boundary参数,Mirth会自动生成合法边界标识- 若你使用的是3.8及以上版本,可在「高级设置」中勾选
Use multipart form data开关,跳过手动拼接请求体的步骤
构造multipart请求体(通用方案,适配所有Mirth版本)
不需要提前将CSV转为base64格式,直接在HTTP Sender的Transformer中添加如下JavaScript脚本即可:
// 若CSV内容已存储在消息中,直接取值即可,例如 var csvContent = msg.toString(); // 若需要读取本地CSV文件,使用以下代码 var csvContent = FileUtil.read('/你的文件存储路径/目标文件.csv'); // 构造表单参数数组,有多个参数时调整数组长度即可 var parts = new Packages.org.apache.commons.httpclient.methods.multipart.Part[1]; // 第一个参数为API要求的CSV对应的表单字段名,最后两个参数指定内容格式和编码 parts[0] = new Packages.org.apache.commons.httpclient.methods.multipart.StringPart( '接口要求的CSV参数名', csvContent, 'text/csv', 'UTF-8' ); // 将构造好的表单参数绑定到请求实体 var httpMethod = connectorMessage.getResponseMap().get('httpSenderMethod'); httpMethod.setRequestEntity(new Packages.org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity(parts, httpMethod.getParams()));
问题排查步骤
- 发送请求后在Mirth消息控制台查看原始请求内容,确认请求头的Content-Type已自动携带boundary参数,CSV内容在表单边界内正常展示
- 若返回400错误,核对API要求的表单字段名、文件名是否和配置一致
- 若返回415错误,检查是否在自定义请求头中额外添加了Content-Type,覆盖了Mirth自动生成的合法配置
内容的提问来源于stack exchange,提问作者Harshal Deshmukh
相关产品推荐
相关产品推荐

