伪装通过POST从MultipartFile发送pdf

时间:2020-01-15 12:45:33

标签: java spring rest curl feign

我正尝试通过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"

0 个答案:

没有答案