2

Android デバイスとデスクトップ デバイス用に Java で REST ベースのサーバーを開発しましたが、これら 2 つのエンティティを区別したいと考えています。

Android デバイスがいつメソッド (作成/読み取り/更新/削除) にアクセスしているか、いつデスクトップ Web アプリにアクセスしているかを知りたいです。

ここに私のコードのスナップショットがあります:

@Path("/v2")
public class RESTfulGeneric {

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/get")
public Response Get() {
        ResponseBuilder builder = Response.status(Response.Status.OK);
        ....
        return builder.build();
    }

@POST
@Consumes({MediaType.APPLICATION_JSON })
@Path("/create/{Name}")
public Response Post(String Table, @PathParam("Name") String Name) {

        ResponseBuilder builder = Response.status(Response.Status.OK);
        ..........
            return builder.build();
    }

}

Android デバイスがこれらのメソッドを呼び出していることを知るには、どうすればわかりますか、または何を確認する必要がありますか?

私を助けることができるこれがあることは知っていrequest.getHeader("User-Agent")ますが、この要求はサーブレットでのみ利用できます。

何か案が?

4

2 に答える 2

2

リクエスト処理メソッドにパラメーターを追加することで、リクエストからユーザーエージェントヘッダーを取得できます。

public Response Post(String Table, @PathParam("Name") String Name, @HeaderParam("user-agent") String userAgent) {
    if (userAgent.contains("Android")) {
        // mobile specific logic
    }
}

これは、Android ユーザーエージェントの便利なリストです...

http://www.gtrifonov.com/2011/04/15/google-android-user-agent-strings-2/

于 2012-05-18T12:53:08.113 に答える