Handling Authentication in Okhttp

前端 未结 2 587
闹比i
闹比i 2021-02-02 00:55

I\'m using OkHttp 2.3 with basic authentication requests, according to OKHttp docs, it automatically retries unauthenticated requests, but whenever I provide invali

2条回答
  •  滥情空心
    2021-02-02 01:37

    protected Authenticator getBasicAuth(final String username, final String password) {
        return new Authenticator() {
            private int mCounter = 0;
    
            @Override
            public Request authenticate(Proxy proxy, Response response) throws IOException {
                if (mCounter++ > 0) {
                    throw new AuthenticationException(
                            AuthenticationException.Type.INVALID_LOGIN, response.message());
                }
    
                String credential = Credentials.basic(username, password);
                return response.request().newBuilder().header("Authorization", credential).build();
            }
    
            @Override
            public Request authenticateProxy(Proxy proxy, Response response) throws IOException {
                return null;
            }
        };
    }
    

    In my Authenticator I simply count the tries - after X tries, I throw an exception.

提交回复
热议问题