javascript
java resttemplate_java-通过resttemplate通过Spring Rest服务发送文...
標題可能看起來很普通,但是沒有一個適合我的問題.
我有一個REST服務,它接受多部分形式的常規參數和文件.
我想使用resttemplate將數據和文件發送到上述rest服務.
直到我發送正常的字符串數據為止,沒有任何問題.一旦我添加了發送字節的代碼,那么我開始收到400錯誤的請求錯誤.
如果我注釋了發送ByteArrayResource的代碼,那么它將開始為正常參數工作.
下面是示例代碼
休息服務控制器
@RestController
@RequestMapping(value="/ticket")
public class UserTicketController {
@RequestMapping(value="/createTicket.do",method={RequestMethod.POST},
consumes = {MediaType.MULTIPART_FORM_DATA_VALUE},headers={"content-type="+MediaType.MULTIPART_FORM_DATA_VALUE})
public void createTicket(@ModelAttribute ServiceDeskRequest serviceDeskRequest, HttpServletRequest request,HttpServletResponse response) throws Exception{
}
}
Servicedeskrequest模型屬性為
public class ServiceDeskRequest implements Serializable{
private String jsonData;
private MultipartFile attachment;
}
應用程序的context.xml
客戶端代碼
RestTemplate restTemplate = new RestTemplate();
MultiValueMap requestParamerterMap = new LinkedMultiValueMap();
requestParamerterMap.add("jsonData", jsonData);
MultipartFile attachment = userRequest.getAttachment();
if(attachment!=null && attachment.getOriginalFilename()!=null) {
ByteArrayResource byteArrayResource = new ByteArrayResource(attachment.getBytes(), attachment.getOriginalFilename());
requestParamerterMap.add("attachment", byteArrayResource);
}
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity> requestEntity = new HttpEntity>(requestParamerterMap, headers);
String response = restTemplate.postForObject(targetUrl, requestEntity, String.class);
總結
以上是生活随笔為你收集整理的java resttemplate_java-通过resttemplate通过Spring Rest服务发送文...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: messagehub讲解_艾舜杰SAP
- 下一篇: java.policy无法修改_如何配置