2017-10-17 45 views
0

マルチパートリクエスト中に異なるContent-Typeヘッダーでボディパーツを設定できるかどうかは不明です。私は文字列の要求全体を構築しようとしましたが、エンドポイントはbase64文字列を受け入れないので、413requestが大きすぎます。私が使用しているエンドポイントのAPIドキュメントはこの構造を必要とするようです。現在、私はこれを下に持っていますが、BodyPartsの間に.fieldを混ぜることについてのエラーを投げています。Jersey multipartを送信する方法(ファイルごとに異なるコンテンツタイプを使用)

    addressString += "\r\n\r\n" 
          + "Content-ID: proofOfAddress\r\n" 
          + "Content-Type: application/octet-stream\r\n" 
          + "Content-Transfer-Encoding: base64\r\n" 
          + "\r\nContent-Disposition: form-data; filename=" + addressProofName + "\r\n"; 

        idString += "Content-ID: proofOfIdentityDocument\r\n" 
          + "Content-Type: application/octet-stream\r\n" 
          + "Content-Transfer-Encoding: base64\r\n" 
          + "Content-Disposition: form-data; filename=" + idProofName + "\r\n"; 

        multipartEntity = new FormDataMultiPart() 
         .field("payload", body, MediaType.APPLICATION_JSON_TYPE) 
         .field("address", addressString, MediaType.TEXT_PLAIN_TYPE) 
         .bodyPart((FileDataBodyPart)files.get(0)) 
         .field("id", idString, MediaType.TEXT_PLAIN_TYPE) 
         .bodyPart((FileDataBodyPart)files.get(0)) 
         .type(Boundary.addBoundary(new MediaType("multipart", "form-data", Collections.singletonMap(Boundary.BOUNDARY_PARAMETER, "--XXX--")))); 

コンテンツタイプを身体部分に付け加える別の方法があるのか​​、それとも不可能なのでしょうか?

答えて

0

ジャージーのコンテンツヘッダーは個別に入力する必要がありましたが、後でファイルパーツを追加する必要がありましたが、実際にはファイルパーツを追加するとヘッダーが追加されます。だからちょうど誤解は、適切な文書を熟読して解決しました。

関連する問題