POM.xml
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.8.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.0.RELEASE</version> </dependency>
API
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate; private void test() { byte[] bytes = readBytesFromFile(path); // Prepare acceptable media type List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>(); acceptableMediaTypes.add(MediaType.ALL); String uri = "http://localhost:8080/upload/{company}/{terminal}/{user}/{docType}/{docNum}/{trx}/?addendum=false&index=0&channel=ui"; RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); // Prepare header HttpHeaders headers = new HttpHeaders(); headers.setAccept(acceptableMediaTypes); HttpEntity<byte[]> entity = new HttpEntity<byte[]>(bytes, headers); Map<String, String> param = new HashMap<String, String>(); param.put("company", "750"); param.put("terminal", "7501"); param.put("user", "cmanshande"); param.put("docType", "HAWS"); param.put("docNum", "20222608918"); param.put("trx", "750110714862"); // Send the request as PUT restTemplate.exchange(uri, HttpMethod.PUT, entity, byte[].class, param); }
Client
@RequestMapping(value = "/upload/{company}/{terminal}/{user}/{docType}/{txId}/**", method = RequestMethod.PUT) @ResponseBody public ResponseEntity<String> processUpload( @RequestBody byte[] content, @PathVariable String company, @PathVariable String terminal, @PathVariable String user, @PathVariable String docType, @PathVariable String txId, HttpServletRequest httpRequest) { . . . . }