Java 使用SpringRESTTemplate上载zip文件和表单数据
我正在尝试使用Java 使用SpringRESTTemplate上载zip文件和表单数据,java,spring,resttemplate,Java,Spring,Resttemplate,我正在尝试使用restemplate上传zip文件和表单数据。 请在下面查找代码 @Controller @RequestMapping("/test") public class EdicomGatewayClient { @RequestMapping(value ="/publisEdicomDocument", method = RequestMethod.POST) public void publisEdicomDocument() {
restemplate
上传zip文件和表单数据。
请在下面查找代码
@Controller
@RequestMapping("/test")
public class EdicomGatewayClient {
@RequestMapping(value ="/publisEdicomDocument", method = RequestMethod.POST)
public void publisEdicomDocument() {
List<ApiError> errors = null;
try {
RestTemplate restTemplate = new RestTemplate();
String restURL = "";
File file = new File("");
DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, file.getName(), (int) file.length(), file.getParentFile());
fileItem.getOutputStream();
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.MULTIPART_FORM_DATA);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<String, Object>();
multipartRequest.add("user","OPENTEXT_AR_TST");
multipartRequest.add("password","4t4qqdbddp");
multipartRequest.add("domain","OPENTEXT_AR_TST");
multipartRequest.add("group","ASPEDI41");
multipartRequest.add("publishType","2");
multipartRequest.add("process","MAPA_AFIP_WSMTXCA_EDICOM_OPENTEXT");
multipartRequest.add("saveOriginalImage",false);
multipartRequest.add("sendDocument",true);
multipartRequest.add("returnData",false);
multipartRequest.add("returnDataType","2");
multipartRequest.add("message", new ByteArrayResource(multipartFile.getBytes()));
multipartRequest.add("filename", multipartFile.getOriginalFilename());
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(multipartRequest, headers);
ResponseEntity response = restTemplate.exchange(restURL,HttpMethod.POST, requestEntity, String.class);
System.out.println("Response ******************************************:"+response);
} catch (Exception e) {
}
}
public static void main(String[] args) {
EdicomGatewayClient edicom = new EdicomGatewayClient();
edicom.publisEdicomDocument();
}
}
为什么在
控制器内使用restemplate
?Spring
RestController
用于服务REST
资源。您可以使用来自不同客户端的restemplate
调用RestController
端点。作为解决此问题的第一步,这可能对您有好处。这是您在代码中使用的真正API端点吗?您确定目标URL的可用性吗?为什么要在控制器中使用restemplate
?Spring
RestController
用于服务REST
资源。您可以使用来自不同客户端的restemplate
调用RestController
端点。作为解决此问题的第一步,这可能对您有好处。这是您在代码中使用的真正API端点吗?您确定目标URL的可用性吗?
org.springframework.web.client.HttpClientErrorException: 400 bad Request.