开发原由:

跟国家虚拟仿真实验平台对接,需要上传报告至国家平台,虽然国家平台提供了接口详情,但在对接的过程中还是遇到了许多问题,因此记录下来。
国家虚拟仿真实验平台

更正: 上传代码做了修改。解决从国家平台下载乱码的问题。

对接上传附件接口:



分别是请求方式和返回码的说明

这里我采用的是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.必须要先上传成绩再上传附件,否则会报错。

更正:解决报告无法下载的问题-跟国家虚拟仿真实验平台对接上传附件接口遇到的问题相关推荐

  1. Jmeter解决上传附件中文名乱码问题

    1.问题描述 在编写jmeter接口脚本时,上传的附件名称,如果有中文名,附件名称会显示乱码.因为是国外开源代码嘛,对中文有时确实不太友好.我尝试了很多方法都失败了,比如说: 买了c**n会员,下载尝 ...

  2. 微信公众号网页授权域名时报内容与下载文件不符,请检查文件内容或重新上传原始文件的错误解决方法

    项目场景: 最近做的项目需要使用到微信支付的jsapi类型,其实如果是做native支付的话还是很容易搞的,但是使用jsapi支付的话需要一个特殊的参数,这个参数就是openid,官网上有获取open ...

  3. php 无法上传附件,Phpwind上传附件“插入”按钮失效无法批量上传解决方法

    今天无忧小编遇见一个用户的问题,在phpwind中要在一个页面中添加图片因为,假如一张张添加的话会非常慢影响建站速度,干脆这位朋友就选择批量上传图片,好不容易在上百张图片选出了三十多张准备上传的时候点 ...

  4. ueditor上传图片回调_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...

    (常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客​blog.csdn.net 报错信息 详见此文的"排错过 ...

  5. hp laser103 属性没有配置项_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...

    (常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客​blog.csdn.net 报错信息 详见此文的"排错过 ...

  6. Airtable无法上传附件/图片;点击附件上传没反应;不安全的地址怎么设置为受信任;解决方法亲测有效

    问题描述 在使用Airtable的时候突然遇到 附件上传不了的情况,就是 或者是 检查的时候刷新页面,点击附件上传反复出现下面这些信息: DevTools 无法加载来源映射:无法加载 net::ERR ...

  7. hdwiki上传附件不显示bug解决办法

    hdwiki版本:5.0 创建.编辑词条时发现上传附件后,并没有显示附件,刷新网页也没有.但是后台显示文件已经上传成功.如图: 马上查看数据库: 原来是hdwiki官方给表wiki_attachmen ...

  8. php上传 io err,【Dz上传附件】解决Discuz Server(IO)Error问题

    [Dz上传附件]解决Discuz Server(IO)Error问题 2018-12-17 Discuz 上传文件时会碰到Discuz Server(IO)Error错误了,这个小编排查了许久没找到问 ...

  9. ljd-2008+下载式多功能实验开发系统_运动控制模型仿真实验平台(YXMCP-ATCA-150)...

    电力电子实验台|光伏并网逆变器|电机测试台架|智能微电网-南京研旭电气​www.njyxdq.com 动控制模型仿真实验平台介绍: 传统的方式对嵌入式算法的编写以及实物调试都有比较高的要求,控制板性能 ...

最新文章

  1. 前端一HTML:二十四伪类
  2. 计算机学院开展活动,团学会 | 以梦为马,不负韶华 计算机学院开展“逐梦100”活动(一)...
  3. linux文件传输常用方法
  4. 完整的端到端的机器学习流程(附代码和数据)|比赛、工程都可以用!
  5. 嵌入式 说明书 软件著作权_软件著作权详细解读
  6. [转载]为什么不推荐使用stop和suspend这两个方法?
  7. oracle0数据库论文总结,大学oracle数据库总结(考试必备)
  8. 从JVM的角度看JAVA代码1
  9. nginx dockerfile安装第三方模块
  10. c语言教程苏小红,《数据结构(C语言)》苏小红 课本案例
  11. tcp连接测试工具_“国货之光”!国产弱网测试神器 QNET,比主流弱网测试工具强在哪?...
  12. git使用stash存储相关操作
  13. [转载] python之numpy的基本使用
  14. 《OpenCV算法精解——基于Python与C++》第七章形态学处理
  15. 计算机审计中级培训班,计算机审计中级培训心得体会
  16. C语言学习(一)C语言能干什么?为什么要学习C语言?
  17. deepfacelab安卓版_DeepFaceLab2.0中文版
  18. 计算机开启后显示器黑屏,电脑打开后显示器黑屏怎么办
  19. 职业综合英语 章节答案考试答案 深圳职业技术学院[渝粤教育]
  20. 华为路由器Talent服务配置

热门文章

  1. Java时间格式化工具类大全_二
  2. 笔录 Flutter(二)Image的属性、使用、圆角、圆形
  3. 武汉地铁站点最短路径搜索的实现(一)——Dijkstra算法(资料收集)
  4. css根据某个角旋转,设置旋转中心点
  5. verilog中define、parameter、localparam的区别
  6. 阶梯下降法,房价问题
  7. kingcms php 漏洞,kingcms任意php文件删除(可截断时升级为任意文件删除 )
  8. vue实现生成二维码,并生成图片
  9. 计算机硬件管理措施,浅谈计算机硬件的维护与管理措施
  10. xampp 安装swoole