Example for 401: DefaultHttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager()); UsernamePasswordCredentials creds = new UsernamePasswordCredentials("user", "pass"); client.getAuthSchemes().register(AuthPolicy.SPNEGO, new NegotiateSchemeFactory(null, true)); client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.SPNEGO), creds); HttpGet httphead = new HttpGet("http://moss-test/"); HttpResponse response = client.execute(httphead); System.out.println(response.getStatusLine()); ---------------------------------------------------------------- this works: DefaultHttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager()); UsernamePasswordCredentials creds = new UsernamePasswordCredentials("user", "pass"); client.getAuthSchemes().register(AuthPolicy.SPNEGO, new NegotiateSchemeFactory(null, true)); client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.SPNEGO), creds); HttpHost target = new HttpHost("moss-test", 80, "http"); HttpContext localCtx = new BasicHttpContext(); HttpGet httphead = new HttpGet("/"); HttpResponse response = client.execute(target, httphead, localCtx); --------------------------------------------------------------- this also works: DefaultHttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager()); UsernamePasswordCredentials creds = new UsernamePasswordCredentials("user", "pass"); client.getAuthSchemes().register(AuthPolicy.SPNEGO, new NegotiateSchemeFactory(null, true)); client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.SPNEGO), creds); client.setReuseStrategy(new NoConnectionReuseStrategy()); HttpGet httphead = new HttpGet("http://moss-test/"); HttpResponse response = client.execute(httphead); System.out.println(response.getStatusLine());