3

チケットの添付ファイルとして使用するために、Java と Jersey を使用して、ファイルを ZenDesk にアップロードして複製しようとしています。ZenDesk のサンプル コードでは、 --data-binary パラメータを指定して curl を使用し、ディスク上のファイルを参照しています。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 です。

ありがとう、

アレン

4

0 に答える 0