关于ZAKER 融媒体解决方案 合作 加入

春季 - 尝试使用多部分文件测试 rest 服务

CocoaChina 10-14

我正在尝试测试我创建的休息服务 . 该服务是一个职位 .

> 我想创建一个文件来传递参数 ( 包括一个多部分文件 ) .

> 现在我正在尝试从那里致电服务 .

相当确定服务无法正常工作 . 但是当我打电话给休息服务时 . 我有一个简单的表单 , 只需传递几个值 , 包括 jpg.

这是代码 .

HttpMessageConverter bufferedIamageHttpMessageConverter = new ByteArrayHttpMessageConverter ( ) ;restTemplate.postForObject ( "http://localhost:8080/sendScreeenAsPostCard", uploadItem.getFileData ( ) , String.class ) ) ;

我的方法签名是:

ResultStatus sendScreenAsPostcard ( @RequestParam MultipartFile image, @RequestParamString userId )

那就是我得到的错误 .

Could not write request: no suitable HttpMessageConverter found for request type [ org.springframework.web.multipart.commons.CommonsMultipartFile ]

最佳答案

您需要模拟文件上传 , 这需要特定的内容类型标头 , 主体参数等 . 类似的事情应该可以解决:

// Fill out the "form"...MultiValueMap<String, Object> parameters = new LinkedMultiValueMap<String, Object> ( ) ;parameters.add ( "file", new FileSystemResource ( "file.jpg" ) ) ; // load file into parameterparameters.add ( "blah", blah ) ; // some other form field// Set the headers...HttpHeaders headers = new HttpHeaders ( ) ;headers.set ( "Content-Type", "multipart/form-data" ) ; // we are sending a formheaders.set ( "Accept", "text/plain" ) ; // looks like you want a string back// Fire!String result = restTemplate.exchange ( "http://localhost:8080/sendScreeenAsPostCard", HttpMethod.POST, new HttpEntity<MultiValueMap<String, Object>> ( parameters, headers ) , String.class ) .getBody ( ) ;

以上内容由"CocoaChina"上传发布 查看原文

觉得文章不错,微信扫描分享好友

扫码分享