2009-12-11 10 views

Antwort

12

Anmeldeinformationen können mithilfe von ClientExecutor bereitgestellt werden.

Credentials credentials = new UsernamePasswordCredentials(userId, password); 
    HttpClient httpClient = new HttpClient(); 
    httpClient.getState().setCredentials(AuthScope.ANY, credentials); 
    httpClient.getParams().setAuthenticationPreemptive(true); 

    ClientExecutor clientExecutor = new ApacheHttpClientExecutor(httpClient); 

    ServiceApi client = ProxyFactory.create(ServiceApi.class, baseUri, clientExecutor); 
15

jnorris 'Antwort verwendet veraltete Klassen. Hier ist eine aktualisierte Methode, die nicht veraltete Klassen verwendet.

import org.apache.http.HttpStatus; 
    import org.apache.http.auth.Credentials; 
    import org.apache.http.auth.UsernamePasswordCredentials; 
    import org.apache.http.impl.client.DefaultHttpClient; 
    ... 
    DefaultHttpClient httpClient = new DefaultHttpClient(); 

    Credentials credentials = new UsernamePasswordCredentials(userName, 
      password); 
    httpClient.getCredentialsProvider().setCredentials(
      org.apache.http.auth.AuthScope.ANY, credentials); 

    ClientExecutor clientExecutor = new ApacheHttpClient4Executor(
      httpClient); 
    proxy = ProxyFactory 
      .create(UserAccessProxy.class, host, clientExecutor); 
0

Vielleicht so etwas wie diese (mit Resteasy 2.3.1):

//(...imports...) 
import org.apache.http.auth.AuthScope; 
import org.apache.http.auth.UsernamePasswordCredentials; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.jboss.resteasy.client.ClientRequest; 
import org.jboss.resteasy.client.ClientResponse; 
import org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor; 

//(...code...) 
private static final String ENDPOINT = "the_rest_endpoint_here"; 

String username = "<user_name>"; 
String password = "<password>"; 

DefaultHttpClient client = new DefaultHttpClient(); 
client.getCredentialsProvider().setCredentials(AuthScope.ANY, 
         new UsernamePasswordCredentials(username, password)); 
ApacheHttpClient4Executor executer = new ApacheHttpClient4Executor(client); 

ClientRequest req = new ClientRequest(ENDPOINT, executer); 

ClientResponse<String> res = req.get(String.class); 
System.out.println(res.getEntity()); 
res.close(); 

... oder mit Resteasy 3.0.18

//(...imports...) 
import javax.ws.rs.core.Response; 
import org.jboss.resteasy.client.jaxrs.BasicAuthentication; 
import org.jboss.resteasy.client.jaxrs.ResteasyClient; 
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; 
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget; 

//(...code...) 
private static final String ENDPOINT = "the_rest_endpoint_here"; 

String usertoken = "<user_token>"; 
String password = "<password>"; 

//with proxy(comment this if not using) 
ResteasyClient client = new ResteasyClientBuilder() 
      .defaultProxy("my_proxy", 8080, "http") 
      .build(); 

ResteasyWebTarget target = client.target(ENDPOINT); 
target.register(new BasicAuthentication(usertoken, password)); 

Response response = target.request().get(); 
System.out.println(response.readEntity(String.class)); 
response.close();