java-client-Programm zu senden, digest-Authentifizierung-Anforderung mit HttpClient-API

Habe ich restlet-Beispiel-client-Programm sendet den digest-Anfrage. Ähnlich wie diese, die ich brauche java-client-Programm sendet eine digest-request mit HttpClient-api.
Kann jemand senden Sie mir Beispiel-code. Vielen Dank im Voraus.

        Reference reference = new Reference("http://localhost:8092/authenticate");
        Client client = new Client(Protocol.HTTP);
        Request request = new Request(Method.GET, reference);
        Response response = client.handle(request);
        System.out.println("response: "+response.getStatus());

        Form form = new Form();
        form.add("username", "rajesh");
        form.add("uri", reference.getPath());

        //Loop over the challengeRequest objects sent by the server.
        for (ChallengeRequest challengeRequest : response
                .getChallengeRequests()) {
            //Get the data from the server's response.
            if (ChallengeScheme.HTTP_DIGEST
                    .equals(challengeRequest.getScheme())) {
                Series<Parameter> params = challengeRequest.getParameters();
                form.add(params.getFirst("nonce"));
                form.add(params.getFirst("realm"));
                form.add(params.getFirst("domain"));
                form.add(params.getFirst("algorithm"));
                form.add(params.getFirst("qop"));
            }
        }

        //Compute the required data
        String a1 = Engine.getInstance().toMd5(
                "rajesh" + ":" + form.getFirstValue("realm") + ":" + "rajesh");
        String a2 = Engine.getInstance().toMd5(
                request.getMethod() + ":" + form.getFirstValue("uri"));
        form.add("response", Engine.getInstance().toMd5(
                a1 + ":" + form.getFirstValue("nonce") + ":" + a2));

        ChallengeResponse challengeResponse = new ChallengeResponse(
                ChallengeScheme.HTTP_DIGEST, "", "");
        challengeResponse.setCredentialComponents(form);

        //Send the completed request
        request.setChallengeResponse(challengeResponse);
        response = client.handle(request);

        //Should be 200.
        System.out.println(response.getStatus());
InformationsquelleAutor Rajesh | 2010-01-28
Schreibe einen Kommentar