0

CXF と Spring を使用して RESTful Web サービスを作成するのは初めてです。プロジェクトは Maven の管理下にあります。

RESTful Webサービスを介して本の情報と表紙の画像を取得するサーバーに接続したいAndroidアプリがあります。RESTful サービスが画像を返すことは可能ですか (また、その方法は?)

プロジェクト エクスプローラー

Project
--Java Resource
----src/main/java
------library.service
--------IBook.java
--------Book.java
----images
------Cover1.png
------Cover2.png
--JavaResources
--Deployed Resources
----webapp
------WEB-INF
----web-resources

IBook.java インターフェイス

@GET
@Path("/book/cover/{name}")
@Produces("image/png")
public Image getImage(@PathParam("name") String name);

Book.java 実装

public Image getImage(String name){
    //How should I get cover png from 'images' folder and return it??
}

ありがとう

シルベスター・パン

4

1 に答える 1

3

Response.ok(params...).build() を介して選択した画像を返すことができます

IBook.java を次のように変更します。

    @GET
    @Path("/book/cover/{name}")
    @Produces("image/*")
    public Response getImage(@PathParam("name") String name);

そして、これへの実装インターフェース。

public Response getImage(String name){
    File file = new File(fileUrl);
    String mediaType = SomeContentTypeMapHere(file)
    return Response.ok(file,mediaType).build()
}

編集

Response.ok(Object type, String mediaType).build()メソッドハンドラーが呼び出されたときに、ビルドしてレスポンスを返すのに使用しました。最初のパラメーターはオブジェクトです。mediaType は基本的にコンテンツ タイプ (例: "image/png, image/jpg など) であり、特定の URL で誰かがリクエストを送信したときに送信する Thing と考えてください。送信する。

@Produces("image/*")メソッドで渡すコンテンツ タイプと一致することを忘れないでくださいok(Object entity, String mediaType

于 2013-09-21T15:44:16.217 に答える