java 调用第三方接口,上传附件简单例子
假设调用的第三方接口为上传.jpg,.jpeg附件,以文件流形式上传,无其它参数。
比如第三方接口为c#开发,接口参数为:
/// <summary> /// 上传附件 /// </summary> /// <param name="formCollection"></param> /// <returns></returns> [HttpPost("UploadFile")] [RequestSizeLimit(10_000_000)] [AllowAnonymous] public async Task<WebApiResult> UploadFile([FromForm] IFormCollection formCollection) { ...
实现逻辑:
a.先构建请求URL
b. 按第三方接口文档处理多文件上传请求参数,构建HttpHeaders,HttpEntity
c.使用RestTemplate请求第三方接口
d.处理返回结果
@PostMapping("/UploadFile") public String UploadFile(@RequestParam("file") MultipartFile multipartFile) throws Exception { try { String url="http://***/UploadFile"; if( !multipartFile.getResource().exists()) return "文件不存在"; String[] extObjs={".jpg",".jpeg"}; String fileName = multipartFile.getOriginalFilename(); String ext = FileUtil.getFileExt(fileName); if (!Arrays.asList(extObjs).contains(ext)) return "文件为空或文件格式不正确!"; MultiValueMap<String, Object> param = new LinkedMultiValueMap<>(); param.add("file", multipartFile.getResource()); RestTemplate request = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA); HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(param, headers); ResponseEntity<Map> response = request.postForEntity(url, requestEntity, Map.class); if (response.getStatusCode() != HttpStatus.OK) { return "返回状态码:"+ response.getStatusCode(); } Map result = response.getBody(); return JSON.toJSONString(result); } catch (Exception ex) { return ex.getMessage() ; } }
运行项目,使用postman测试:
标签:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律