私はジャージーを使用しており、マルチパート ポスト リクエストの本文の MD5 ハッシュを計算する必要があります。現在のリソース メソッドの署名は次のようになります。
@POST
@Consumes("multipart/form-data")
@Produces("application/json")
public String post(
@FormDataParam("name") String name,
@FormDataParam("description") String description,
@FormDataParam("iconfile") FormDataBodyPart part,
@Context HttpServletRequest hsr) {
// ...
}
MD5 ハッシュを計算する必要がある生のリクエスト本文を取得する方法が見つかりませんでした。リソース メソッドが呼び出されると、 HttpServletRequest
( hsr.getInputStream()
) からの入力ストリームは既に消費されており、再度読み取ることができません。
メソッドのシグネチャを次のように変更してみました。
@POST
@Consumes("multipart/form-data")
@Produces("application/json")
public String test(byte[] bytes) {
// ...
}
このようにして、リクエスト本文の生のバイトを取得し、MD5 ハッシュを正常に計算できますが、そこからマルチパート リクエストを処理する方法がわかりません (パーツの分割、各パーツの取得など)。生のリクエストを自分で処理する必要がありますか? または、Jersey に汚い仕事をFormDataParam
させて s を抽出させ、MD5 ハッシュを何らかの方法で計算させることはできますか?
ありがとう、