10

かなり長い間、私は自分の開発ニーズに合わせて JAX-RS Web サービスを開発してきました。これまでに作成したすべてのメソッドは、Java Strings またはプリミティブ型を入力として受け入れます。

そのような方法の例:

@POST  
@Path("MyMethod")  
@Produces(MediaType.APPLICATION_JSON)  
public String MyMethod(@FormParam("username")String username, @FormParam("password")String passowrd)

私が今やろうとしているのは、画像を入力として受け入れることです。私はこれに関する多くの記事を読みました。base64エンコーディングを入力として受け入れることを提案する人もいれば、実際のInputSteamを受け入れることを提案する人もいました。

ただし、InputStream を受け入れる方法に関する本格的な例はまだ見ていません。@consumer アノテーションと @Provider について読みましたが、まだ理解できません。これに向けて何らかの形で私を導く記事、ドキュメント、または例はありますか? つまり、理論を表示するのではなく、実装方法に関する段階的なプロセスです。

base64エンコーディングが機能することは知っていますが、好奇心から、他のアプローチもどのように機能するかを知りたいです...よろしくお願いします。

4

2 に答える 2

8

これはうまくいくはずです:

import org.apache.commons.io.IOUtils;
@POST
@Path("MyMethod") 
@Consumes("*/*") // to accept all input types 
public String MyMethod(InputStream stream) {
    byte[] image = IOUtils.toByteArray(stream);
    return "done";
}
于 2013-02-13T18:32:39.367 に答える