2016-12-07 6 views
1

HttpURLConnection 클래스를 사용하여 Android 앱에서 HTTP 연결을 관리하고 있습니다. 문제는 일부 서버에서 인터넷 탐색기에서 작동하는 URL을 사용하는 코드 입니다. 기본 인증으로 연결을 초기화하지만이 서버는 다른 모드가 필요하다고 생각합니다.HttpURLConnection 인증 모드

curl_easy_setopt(pCurlHandle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 

그러나이 안드로이드에 그런 일을하고에 방법이다 : 나는 libcurl에 다음과 같은 명령으로 작동 알아?

... 
connection.setRequestProperty("Authorization", "Basic " + Base64.encode("username:password")); 
... 

내가 너무 Authenticator으로 시도 :

Authenticator.setDefault(new Authenticator() { 

    @Override 
    protected PasswordAuthentication getPasswordAuthentication() 
    { 
     return new PasswordAuthentication("username", "password".toCharArray()); 
    } 
}); 

을하지만 난 여전히 내 애플 리케이션에 401이 현재 내가 그렇게. 어떤 생각?

답변

1

음, this post 정말 날 도와 (하지만 난 Authenticator 클래스 전혀 사용하지 않음) (인증이 필요한 경우) 그런 일을 지금 내 코드 :

  • HttpURLConnection 초기화 기본 인증 (제 질문의 코드에서 첫 번째 자바 샘플 참조)

  • 테스트와 객체 나는 코드 (401)를 수신하고 있는지 서버가 을 위해 제외 된 경우, 확인하는 경우 대답 헤더를 분석하여 인증을 다이제스트합니다. 수동 내장 다이제스트 요청 속성

  • 시도

  • (내가 언급 한 게시물을 참조) 그리고 그것은 작동한다!

나는이 대답이 누군가를 도울 것이라고 희망한다!