Jersey Client API - authentication
At first I got this working as documented in the Jersey User guide
Authenticator.setDefault (authinstance);
However I did not like this as it relied on setting a global authenticator. After some research I discovered that Jersey has a HTTPBasicAuthFilter
which is even easier to use.
Client c = Client.create();
c.addFilter(new HTTPBasicAuthFilter(user, password));
See: https://jersey.github.io/nonav/apidocs/1.10/jersey/com/sun/jersey/api/client/filter/HTTPBasicAuthFilter.html https://jersey.github.io/nonav/apidocs/1.10/jersey/com/sun/jersey/api/client/filter/Filterable.html#addFilter(com.sun.jersey.api.client.filter.ClientFilter)
There's a small section in the Jersey User guide about Client authentication. I'd recommend you follow its advice and try using Apache HTTP Client instead of HttpURLConnection, as it has much better support for just about anything you'd want to do.
Jersey 2.x:
HttpAuthenticationFeature feature = HttpAuthenticationFeature.basicBuilder()
.nonPreemptive()
.credentials("user", "password")
.build();
ClientConfig clientConfig = new ClientConfig();
clientConfig.register(feature) ;
Client client = ClientBuilder.newClient(clientConfig);
Reference: 5.9.1. Http Authentication Support