KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have been using HTTPClient version 4.1.2 to try to access a REST over HTTP API that requires Basic Authentication. Here is client code: DefaultHttpClient httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager()); // Enable HTTP Basic Auth httpClient.getCredentialsProvider().setCredentials( new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(this.username, this.password)); HttpHost proxy = new HttpHost(this.proxyURI.getHost(), this.proxyURI.getPort()); httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy); When I construct a POST request, like this: HttpPost request = new HttpPost("http://my/url"); request.addHeader(new BasicHeader("Content-type", "application/atom+xml; type=entry")); // required by vendor request.setEntity(new StringEntity("My content")); HttpResponse response = client.execute(request); I see in Charles Proxy that there are two requests being sent. One without the Authorization: Basic ... header and one with it. The first one fails with a 401, as you would expect, but the second goes through just fine with a 201. Does anyone know why this happens? Thanks! EDIT: I should make clear that I have already looked at this question , but as you can see I set the AuthScope the same way and it didn't solve my problem. Also, I am creating a new HttpClient every time I made a request (though I use the same ConnectionManager ), but even if I use the same HttpClient for multiple requests, the problem still persists. EDIT 2: So it looks like what @LastCoder was suggesti
Tags (comma-separated)
Save Edits
Cancel