JIRA REST API破坏了上传的zip附件

时间:2016-05-04 15:06:42

标签: spring jira zipfile resttemplate jira-rest-api

我正在尝试使用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登录。 任何帮助都会很棒。

由于

1 个答案:

答案 0 :(得分:1)

原来这是Spring(3.2.1)RestTemplate或我如何使用它的问题。
使用Postman手动上传zip文件会导致成功上传的zip文件。