2012-06-19 7 views
0

요청에 인증 헤더를 추가하고 싶습니다. 나는 아파치 httpclient 4.0에서 DefaultHttpClient를 사용하고있다.DefaultHttpClient로 인증 할 수 없습니다.

URI uri = new URI("http://www.bla.bla/folder/"); 

String host = uri.getHost(); 
int port = uri.getPort(); 

httpClient.getCredentialsProvider().setCredentials(
     new AuthScope(host, port, AuthScope.ANY_SCHEME), 
     new UsernamePasswordCredentials("myuser", "mypassword") 
     ); 

이 실행되고, 심지어 디버거 나는 세션 객체가 요청을하는 순간에 설정의 변수 일부 자격 증명을 참조하십시오

나는 이런 식으로 끝낼 것을 발견했다. 하지만 Charles와 웹 트래픽을 검사하고 인증 헤더가 없습니다. 바르의

내용 :

호스트 : www.bla.bla

포트 : -1 Btw는

. 나는 함께 요청의 헤더를 볼 수있는 프록시로 찰스 활성화 :

HttpHost proxy = new HttpHost("127.0.0.1", 8888, "http"); 
httpParameters.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); 

나는 내가 프록시 물건을 해제 어쨌든 경우 ... 내 헤더를 변경하지 않아야 웹 프록시에 대한 이해가없는 것 같아 또한 작동하지 않습니다 (헤더의 내용을 볼 수는 없지만 동일한 이유가 있다고 생각합니다). 위한 인증 헤더없이, How can I send HTTP Basic Authentication headers in Android?

내가 정확히 같은 요청을 얻을 : 여기 Softhinker.com의 게시물에서 설명한 것처럼

또한 요청 인터셉터를 사용했습니다.

내가 뭘 잘못하고 있니? 사전에

감사합니다.

+0

설명 및 솔루션 모두가이 스레드에 설명되어 있습니다 ... http://stackoverflow.com/questions/18108783/apache-httpclient-doesnt-set-basic-authentication-credentials –

답변

0

요청에서 "수동으로"헤더를 설정하고 있습니다.

request.setHeader(new BasicHeader("Authorization", authstring)); 
관련 문제