[ANDROID] 어떻게 사용하는 기본 인증은 안드로이드에 발리로합니까?
ANDROID어떻게 사용하는 기본 인증은 안드로이드에 발리로합니까?
해결법
-
1.네, 그것은 가능합니다. 당신은) (Request.getHeaders를 오버라이드 (override) 할 필요가있다. 나는 게으른 그리고 난 안드로이드 봄에서 HttpHeaders 및 HttpAuthentication를 사용하지만, 당신은 단지 인증 헤더를 구축하고 방법에서 반환 할 수 있습니다. 대해 getHeaders에서 ()는 기본 인증에 대한 인증 헤더를 반환 할 수 있습니다. 이 기본 인증과 샘플 요청입니다.
네, 그것은 가능합니다. 당신은) (Request.getHeaders를 오버라이드 (override) 할 필요가있다. 나는 게으른 그리고 난 안드로이드 봄에서 HttpHeaders 및 HttpAuthentication를 사용하지만, 당신은 단지 인증 헤더를 구축하고 방법에서 반환 할 수 있습니다. 대해 getHeaders에서 ()는 기본 인증에 대한 인증 헤더를 반환 할 수 있습니다. 이 기본 인증과 샘플 요청입니다.
public class GetUser extends Request<User> { private static final String TAG = GetUser.class.getName(); private Response.Listener<User> mListener; private ObjectMapper mMapper = new ObjectMapper(); public GetUser(Response.ErrorListener errorListener, Response.Listener<User> listener){ super(Method.GET, PoisUtils.BASE_URL + "/users", errorListener); mListener = listener; } @Override protected Response<User> parseNetworkResponse(NetworkResponse response) { String jsonString = new String(response.data); try { User result = mMapper.readValue(jsonString, User.class); return Response.success(result, getCacheEntry()); } catch (IOException e) { Log.d(TAG, e.getMessage()); } return null; } @Override protected void deliverResponse(User response) { mListener.onResponse(response); } @Override public Map<String, String> getHeaders() throws AuthFailureError { return AuthUtils.buildAuthHeaders().toSingleValueMap(); } }
그리고 여기가 인증 헤더를 구축하는 방법이다
public static HttpHeaders buildAuthHeaders(){ if(UserUtils.isUserLogged()){ HttpHeaders requestHeaders = new HttpHeaders(); User user = PoisApplication.get().getUser(); HttpAuthentication auth = new HttpBasicAuthentication( user.getUsername(), user.getPassword()); requestHeaders.setAuthorization(auth); return requestHeaders; } return null; }
-
2.그냥 안드로이드에 대한 스프링을 사용하지 않는 사람들을 위해, 여기 그것을하는 방법은 다음과 같습니다.
그냥 안드로이드에 대한 스프링을 사용하지 않는 사람들을 위해, 여기 그것을하는 방법은 다음과 같습니다.
@Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> params = new HashMap<String, String>(); String creds = String.format("%s:%s","USERNAME","PASSWORD"); String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT); params.put("Authorization", auth); return params; }
직장이 대신 Base64.DEFAULT의 Base64.NO_WRAP를 사용해야 할 수도 있습니다. 코멘트에 지적.
API 8 +
-
3.프록시 인증 (오징어 등)의 경우이 헤더를 사용합니다 :
프록시 인증 (오징어 등)의 경우이 헤더를 사용합니다 :
String credentials = proxyUsername + ":" + proxyPassword; String auth = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); headers.put("Proxy-Authorization", auth);
from https://stackoverflow.com/questions/16817980/how-does-one-use-basic-authentication-with-volley-on-android by cc-by-sa and MIT license
'ANDROID' 카테고리의 다른 글
[ANDROID] 폴더 데이터베이스에 자산의 복사 데이터베이스 [중복] (0) | 2020.11.05 |
---|---|
[ANDROID] 어떻게 탐색 서랍 서랍 헤더 레이아웃보기로 설정 텍스트보기를 팽창하지 않고 (0) | 2020.11.05 |
[ANDROID] 'ERROR : 해결에 실패했습니다 com.android.support:appcompat-v7:29.0.1'[중복] (0) | 2020.11.05 |
[ANDROID] 어떻게 안드로이드에서보기에 doubletap을 들으려면? [복제] (0) | 2020.11.05 |
[ANDROID] 어떻게 안드로이드에 구글 사용자 이름을 얻을 수 있나요? (0) | 2020.11.05 |