使用Java Jersey将文件上传到ZenDesk

时间:2013-03-11 15:45:09

标签: java jersey zendesk

我正在尝试使用java和Jersey复制,将文件上传到ZenDesk,以用作故障单上的附件。 ZenDesk的示例代码使用curl和--data-binary参数,引用磁盘上的文件。 我使用我在git上找到的SDK客户端作为我的起点,关于此SDK的所有内容都适用于文件上传的例外。

以下是我目前上传的代码:

        File fileToUpload = new File(attachment.getUrl());

        FileDataBodyPart filePart = new FileDataBodyPart(attachment.getFilename(), fileToUpload, MediaType.APPLICATION_OCTET_STREAM_TYPE); 

        FormDataContentDisposition.FormDataContentDispositionBuilder builder = FormDataContentDisposition.name(filePart.getName());
        builder.fileName(fileToUpload.getName());
        builder.size(fileToUpload.length());
        filePart.setFormDataContentDisposition(builder.build());

        FormDataMultiPart multiPart = new FormDataMultiPart();
        multiPart.bodyPart(filePart);
        multiPart.field("filename", attachment.getFilename());

        ClientResponse cr = rootResource.path("/api/v2/uploads.json")
                .accept(MediaType.APPLICATION_JSON_TYPE)
                .type(MediaType.MULTIPART_FORM_DATA_TYPE)
//              .post(AttachmentWrapper.class, attachment);
                .post(ClientResponse.class, multiPart);

这会导致ZenDesk的内部服务器错误500响应。

我已经尝试了几种不同的参数安排,没有成功。 我用作起点的项目位于:Zendesk-API-Client

原始项目的问题在于,上传的文件在ZenDesk服务器上没有可用的内容,它只是定义文件的JSON。

谢谢,

阿伦

0 个答案:

没有答案