我正在尝试使用JIRA Rest API(版本2)为问题添加zip附件。
代码似乎工作正常,但是当我查看故障单上的附件时,附件的大小几乎是应该的两倍,并且在尝试打开它时我发现它已损坏。
我可以毫无问题地上传图像文件(我的测试中的一个png)。
我使用的代码是:
String basic = createBasicAuth();
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + basic);
headers.add("X-Atlassian-Token", "no-check");
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
LinkedMultiValueMap<String, Resource> map = new LinkedMultiValueMap<>();
map.add("file", new ClassPathResource("/zipfile.zip"));
HttpEntity<LinkedMultiValueMap<String, Resource>> body = new HttpEntity<>(map, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity(jiraUrl, body, String.class);
我尝试使用ByteArrayResource
而不是ClassPathResource
,但这会导致服务器出现500错误。
我还尝试将每个资源包装在自己的HttpEntity
中,因为zip文件有自己的标题,媒体类型设置为application / octet-stream。
还有其他人有这个问题吗?如果没有,我会用Atlassian登录。 任何帮助都会很棒。
由于
答案 0 :(得分:1)
原来这是Spring(3.2.1)RestTemplate
或我如何使用它的问题。
使用Postman手动上传zip文件会导致成功上传的zip文件。