更正:解决报告无法下载的问题-跟国家虚拟仿真实验平台对接上传附件接口遇到的问题
开发原由:
跟国家虚拟仿真实验平台对接,需要上传报告至国家平台,虽然国家平台提供了接口详情,但在对接的过程中还是遇到了许多问题,因此记录下来。
国家虚拟仿真实验平台
更正: 上传代码做了修改。解决从国家平台下载乱码的问题。
对接上传附件接口:
分别是请求方式和返回码的说明
这里我采用的是http的post请求:
上传代码:
/****上传实验报告* @Description: 返回码说明:0,调用成功;* 1,参数错误;* 2,密钥不正确;* 3,access_token 已过期;* 4,数据错误,appid 与 access_token 所含信息不一致;* 5,非法access_token* 6,重复上传实验报告* 7,originId数据不存在* 8,数据错误* 9,验证失败* 10,文件上传失败请重试* 其他值,系统错误或非法操作* @param* @return*/public String uploadfile(String originId,String AccessToken, String filename,String filePath,String title ) {RestTemplate restTemplate = new RestTemplate();HttpHeaders requestHeaders = new HttpHeaders();FileSystemResource fileSystemResource = new FileSystemResource(new File(FILEADDRESS+filePath));MultiValueMap<String, Object> tokenParamMap = new LinkedMultiValueMap<String, Object>();String urlEncodefilename = Encodes.urlEncode(filename);String urlEncodeTitle = Encodes.urlEncode(title);String remarks = Encodes.urlEncode("无");tokenParamMap.add("file", fileSystemResource);String url = UPLOADFILEURL+"?access_token="+AccessToken+"&appid="+APPID+"&originId="+ORIGINID+"&filename="+urlEncodefilename+"&title="+urlEncodeTitle+"&remarks="+remarks;requestHeaders.add(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "+ "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36");requestHeaders.add(HttpHeaders.CONTENT_TYPE, "multipart/form-data;charset=utf-8");// 3. 封装HttpEntity对象HttpEntity<FileSystemResource> requestEntity = new HttpEntity<>(fileSystemResource, requestHeaders);// HttpEntity<MultiValueMap<String, Object>> requestEntity //= new HttpEntity<MultiValueMap<String, Object>>(// tokenParamMap, requestHeaders);// 4. 发送Post请求ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity,String.class);// 信息太长,调试时候打印System.out.println(url);System.out.println("uploadfile接口返回信息: " + responseEntity.getBody());return responseEntity.getBody();}
在这里有几个小问题,并没有在对接文档中体现,导致对接失败,最后还是问的客服解决的:
1. 报告上传完成后,再次上传不会覆盖。
2. 报告的唯一性是通过OriginId来区别的,一个人可以上传好几份报告,只要OriginId不同。
3. remarks 参数必须写,可以为空,但必须有,否则会报错。
4. 文件流必须放在Body里Post过去,不用加参数,否则上传的报告下载下来会是乱码。
5. access_token、filename、title、remarks都必须要URL编码。
6. OriginId是自己平台定义的,一定要保证唯一性,不要和别的平台重复。
7.报告大小要限制在5M内
8.必须要先上传成绩再上传附件,否则会报错。
更正:解决报告无法下载的问题-跟国家虚拟仿真实验平台对接上传附件接口遇到的问题相关推荐
- Jmeter解决上传附件中文名乱码问题
1.问题描述 在编写jmeter接口脚本时,上传的附件名称,如果有中文名,附件名称会显示乱码.因为是国外开源代码嘛,对中文有时确实不太友好.我尝试了很多方法都失败了,比如说: 买了c**n会员,下载尝 ...
- 微信公众号网页授权域名时报内容与下载文件不符,请检查文件内容或重新上传原始文件的错误解决方法
项目场景: 最近做的项目需要使用到微信支付的jsapi类型,其实如果是做native支付的话还是很容易搞的,但是使用jsapi支付的话需要一个特殊的参数,这个参数就是openid,官网上有获取open ...
- php 无法上传附件,Phpwind上传附件“插入”按钮失效无法批量上传解决方法
今天无忧小编遇见一个用户的问题,在phpwind中要在一个页面中添加图片因为,假如一张张添加的话会非常慢影响建站速度,干脆这位朋友就选择批量上传图片,好不容易在上百张图片选出了三十多张准备上传的时候点 ...
- ueditor上传图片回调_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...
(常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客blog.csdn.net 报错信息 详见此文的"排错过 ...
- hp laser103 属性没有配置项_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...
(常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客blog.csdn.net 报错信息 详见此文的"排错过 ...
- Airtable无法上传附件/图片;点击附件上传没反应;不安全的地址怎么设置为受信任;解决方法亲测有效
问题描述 在使用Airtable的时候突然遇到 附件上传不了的情况,就是 或者是 检查的时候刷新页面,点击附件上传反复出现下面这些信息: DevTools 无法加载来源映射:无法加载 net::ERR ...
- hdwiki上传附件不显示bug解决办法
hdwiki版本:5.0 创建.编辑词条时发现上传附件后,并没有显示附件,刷新网页也没有.但是后台显示文件已经上传成功.如图: 马上查看数据库: 原来是hdwiki官方给表wiki_attachmen ...
- php上传 io err,【Dz上传附件】解决Discuz Server(IO)Error问题
[Dz上传附件]解决Discuz Server(IO)Error问题 2018-12-17 Discuz 上传文件时会碰到Discuz Server(IO)Error错误了,这个小编排查了许久没找到问 ...
- ljd-2008+下载式多功能实验开发系统_运动控制模型仿真实验平台(YXMCP-ATCA-150)...
电力电子实验台|光伏并网逆变器|电机测试台架|智能微电网-南京研旭电气www.njyxdq.com 动控制模型仿真实验平台介绍: 传统的方式对嵌入式算法的编写以及实物调试都有比较高的要求,控制板性能 ...
最新文章
- 前端一HTML:二十四伪类
- 计算机学院开展活动,团学会 | 以梦为马,不负韶华 计算机学院开展“逐梦100”活动(一)...
- linux文件传输常用方法
- 完整的端到端的机器学习流程(附代码和数据)|比赛、工程都可以用!
- 嵌入式 说明书 软件著作权_软件著作权详细解读
- [转载]为什么不推荐使用stop和suspend这两个方法?
- oracle0数据库论文总结,大学oracle数据库总结(考试必备)
- 从JVM的角度看JAVA代码1
- nginx dockerfile安装第三方模块
- c语言教程苏小红,《数据结构(C语言)》苏小红 课本案例
- tcp连接测试工具_“国货之光”!国产弱网测试神器 QNET,比主流弱网测试工具强在哪?...
- git使用stash存储相关操作
- [转载] python之numpy的基本使用
- 《OpenCV算法精解——基于Python与C++》第七章形态学处理
- 计算机审计中级培训班,计算机审计中级培训心得体会
- C语言学习(一)C语言能干什么?为什么要学习C语言?
- deepfacelab安卓版_DeepFaceLab2.0中文版
- 计算机开启后显示器黑屏,电脑打开后显示器黑屏怎么办
- 职业综合英语 章节答案考试答案 深圳职业技术学院[渝粤教育]
- 华为路由器Talent服务配置