user57
user57

Reputation: 136

How to get the browser name alone from client in java?

I tried using

 String userAgent=req.getHeader("user-agent");

and also the following

@GET
    @Path("/get")
    public Response addUser(@HeaderParam("user-agent") String userAgent) {

        return Response.status(200)
            .entity("addUser is called, userAgent : " + userAgent)
            .build();

    }

But I need only, browser name as chrome,firefox,IE.Please help,if anyone know.

UPDATE : Got answer

 public String browser(@HeaderParam("user-agent") String userAgent){

        UserAgent browserName = UserAgent.parseUserAgentString(userAgent);
        String browser=browserName.toString();
        System.out.println(browser)
    }

Upvotes: 2

Views: 3785

Answers (1)

Robby Cornelissen
Robby Cornelissen

Reputation: 97331

Getting information out of user agent strings is somewhat of a black art. Easiest is probably to use a library to parse the user agent string and extract the needed information.

I've used UADetector in the past with good results, but there are undoubtedly other libraries out there.

The following sample is from the UADetector documentation:

UserAgentStringParser parser = UADetectorServiceFactory.getResourceModuleParser();
ReadableUserAgent agent = parser.parse(request.getHeader("User-Agent"));

out.append("You're a <em>");
out.append(agent.getName());
out.append("</em> on <em>");
out.append(agent.getOperatingSystem().getName());
out.append("</em>!");

Upvotes: 3

Related Questions