2012-12-22 2 views
0

인증 헤더를 추가하면 안드로이드는 filenotfound 예외를 발생시킵니다. 삭제할 경우인증 헤더를 추가하면 안드로이드가 filenotfound 예외를 throw합니다.

con.setRequestProperty ("Authorization", basicAuth); 

모두 괜찮습니까?

con = (HttpsURLConnection)url.openConnection(); 
      String userpass = userNameEditText.getText() + ":" + passwordEditText.getText(); 

      String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.NO_WRAP); 

      con.setRequestProperty ("Authorization", basicAuth); 

답변

0

나는 다음과 같은 것을 사용했으며 매력적으로 작동합니다.

//Base64 basic http authentication 
String textToBeEncoded = mName+":"+mPassword; 
byte[] data = null; 
data = textToBeEncoded.getBytes("UTF-8"); 
encoding = Base64.encodeToString(data,Base64.NO_WRAP); 
Log.d(TAG,"encoded string: "+encoding); 
//-------------------------------- 
HttpGet httpRequest = new HttpGet("//REQUEST URL//"); 
httpRequest.addHeader("Authorization", "Basic "+encoding); 
HttpClient httpclient = new DefaultHttpClient(); 
response = httpclient.execute(httpRequest); 

대신이 방법을 사용해보십시오

..

는 작동 바랍니다.

+0

아니요. 같은 것 – stack

1

나는 그것이 작동하는 이유를 확인하지만, 그렇게, Authorization 헤더를 추가 할 필요가 없습니다 않습니다 후 http://developer.android.com/reference/java/net/HttpURLConnection.html에서 다음

다음 코드

Authenticator.setDefault(new Authenticator() { 
    protected PasswordAuthentication getPasswordAuthentication() { 
     return new PasswordAuthentication(username, password.toCharArray()); 

    }); 
} 

를 사용합니까하지 않았다 이 수업은 자동으로 추가됩니다.

일부 장치에서만 예외가 발생하는 응용 프로그램을 가지고 있으며 코드를이 코드로 변경하면 모든 장치에서이 문제를 해결할 수 있습니다.

도움이 되길 바랍니다.

관련 문제