我正尝试通过feign通过POST发送pdf到REST端点,我以前从我自己的spring REST API中以MultipartFile
的形式获取pdf,但是我的Feign Client总是失败,并显示以下消息: >
请求正文必须包含pdf文件本身(application / pdf)或 文件的路径(键为“ path”的application / json)
我的REST端点:
@Autowired
PDFConverterService pdfConverterService;
public void importResource(MultipartFile resource) throws IOException {
String contentType = resource.getContentType();
if (contentType.equals("application/pdf")) {
File tmp = File.createTempFile("tmp","pdf");
resource.transferTo(tmp);
pdfConverterService.process(tmp);
tmp.delete();
}
}
我的假客户:
@FeignClient(name = "PDFConverterService", url = "http://foo/bar/api")
@Service
public interface PDFConverterService {
@RequestMapping(method = RequestMethod.POST, value = "/process")
@Headers({"Accept: application/json", "Content-Type: application/pdf"})
String process(@RequestBody File file);
}
我也曾尝试使用process(@Param("file") File file)
,但同样失败,并出现相同的错误。我还没有找到带有pdf请求正文的假POST请求的任何有用文档。
起作用的相应卷曲将类似于:
curl -X POST -H "Accept: application/json" -H "Content-Type: application/pdf" -i http://foo/bar/api/process --data-binary "@\path\to\some\pdf"