2

我已经为 Android 设备和桌面设备开发了一个基于 Java 的 REST 服务器,现在我想在这两个实体之间有所作为。

我想知道 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")可以帮助我,但这个请求仅在 Servlet 中可用。

任何的想法?

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 回答
1

如果使用 spring mvc,您可以使用 @RequestHeader 注释

于 2015-03-12T19:59:32.053 回答