【问题标题】:How to use Feign Client to upload multipart file?如何使用 Feign Client 上传 multipart 文件?
【发布时间】:2018-09-19 02:05:05
【问题描述】:

我必须打电话将文件上传到以下服务:-

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public Response uploadFile(
       @RequestParam(value="file", required=true) MultipartFile file, 
       @RequestParam(value="asOfDate" Date asOfDate,
       @RequestHeader(value = "metric") String metric,
       @RequestHeader(value = "user_id") String userId,
       @RequestHeader(value = "user_name") String userName,
       @RequestHeader(value = "user_company_id") String userCompanyId){
 }

目前我正在使用 RestTemplate 调用此服务,但现在我需要将 RestTemplate 调用转换为 Feign Client。

我正在尝试使用 feign 完成分段文件上传,但我似乎无法在任何地方找到它的好例子。

【问题讨论】:

  • 没有 feign 客户端可以工作吗?可能通过向其添加单元测试来确保它适用于常规 HTTP Post。
  • 检查SOexample
  • @PrabinPaudel 是的,它在没有假装客户端的情况下工作。我想将这些调用转换为 feign。
  • @AmitKBist 这些示例不起作用,我收到“方法的主体参数过多错误”。

标签: spring-boot microservices netflix-feign spring-cloud-feign feign


【解决方案1】:

以下代码应该可以工作

@FeignClient(
        url = "HOST_URL",
        name = "FileUploadClient")
public interface FileUploadClient {

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public Response uploadFile(
       @PathVariable(value="file", required=true) MultipartFile file, 
       @RequestParam(value="asOfDate" Date asOfDate,
       @RequestHeader(value = "metric") String metric,
       @RequestHeader(value = "user_id") String userId,
       @RequestHeader(value = "user_name") String userName,
       @RequestHeader(value = "user_company_id") String userCompanyId){
 }
}

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 2019-08-16
    • 2023-02-20
    • 1970-01-01
    • 2020-02-01
    • 2011-08-21
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多