1

GoogleNetHttpTransport를 사용하여 googleapps에서 사용자를 작성하기 위해 클라이언트를 작성했지만 superadmin api를 통해 Super Admin으로 사용자를 지정할 때 socketTimeoutException이 발생합니다. 사용자 연결에는 superAdmin 권한 자체가 있습니다.GoogleApps 클라이언트가 SocketTimeOutException만을 제공함

GoogleNetHttpTransport을 사용할 때 ReadTimeOut/SocketTimeout을 늘리는 방법.

httpTransport = GoogleNetHttpTransport.newTrustedTransport() ; 
GoogleCredential credential = new GoogleCredential.Builder() 
        .setTransport(httpTransport) 
        .setJsonFactory(JSON_FACTORY) 
        .setServiceAccountId(serviceAccountId) 
        .setServiceAccountScopes(scopes) 
        .setServiceAccountUser(superAdminUserMail) 
        .setServiceAccountPrivateKeyFromP12File(privateKeyFile).build(); 

client = new Directory.Builder(httpTransport, JSON_FACTORY,credential) 
         .setApplicationName(APPLICATION_NAME). 
         .setHttpRequestInitializer(credential).build(); 

//Getting the sockt/timeout exception 
client.users().makeAdmin(userID, admin).execute(); 

답변

2

자신의 HttpRequestInitializer 만들기 클라이언트를 대상으로 연결하고 만드는 코드 snippent를 검색 :

new HttpRequestInitializer() { 
    @Override 
    public void initialize(HttpRequest request) throws IOException { 
     credential.initialize(request); 
     request.setConnectTimeout(CONNECT_TIMEOUT); 
     request.setReadTimeout(READ_TIMEOUT); 
    } 
} 
+0

덕분에 qtxo, 이건 내 문제를 해결했다. 고맙습니다. 다른 질문이 있습니다. googleapps에서 사용자와 그룹을 관리하는 데 사용하기 위해 권장되는 전송이 필요합니까? 나는 문서에서 그들이 haha ​​apacheHttpTransport와 함께 NetHttpTransport를 볼 수 있습니까? – satya

+0

HttpClient 버전 종속성 (4.0.1)이 내 응용 프로그램에서 사용하는 다른 라이브러리에 비해 너무 오래 되었기 때문에 나는 ApacheHttpTransport를 시도하지 않았습니다. – qtxo