2016-05-03 12 views
0

Die Anwendung läuft auf dem Produktionsserver, der über einen Proxy-Server auf https://www.googleapi.com zugreift. So, wie man die URL statt https://www.googleapi.com zu http://www.googleapi.com:443 setzt.Google Drive-API-URL-Änderungen

Das Codebeispiel, was zurzeit verwendet wird, ist

File dataStoreDir = new File(resourceDir, credentials); 

    JsonFactory jacksonFactory = JacksonFactory.getDefaultInstance(); 

    //List<String> scopes = Arrays.asList(DriveScopes.DRIVE); 
    List<String> scopes = Arrays.asList("http://www.googleapis.com/auth/drive:443"); 

    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 

    FileDataStoreFactory dataStoreFactory = new FileDataStoreFactory(dataStoreDir); 


    String clientSecret = config.getClientSecret(); 

    InputStream in = new FileInputStream(new File(resourceDir, clientSecret)); 
    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(jacksonFactory, new InputStreamReader(in)); 


    // Build flow and trigger user authorization request. 
    GoogleAuthorizationCodeFlow flow = 
      new GoogleAuthorizationCodeFlow.Builder(
        httpTransport, jacksonFactory, clientSecrets, scopes) 
        .setDataStoreFactory(dataStoreFactory) 
        .setAccessType("offline") 
        .setAuthorizationServerEncodedUrl("http://www.googleapis.com/auth/drive:443") 
        .build(); 
    Credential credential = new AuthorizationCodeInstalledApp(
      flow, new LocalServerReceiver()).authorize("user"); 

    logger.info("Credentials saved to " + dataStoreDir.getAbsolutePath()); 


    drive = new Drive.Builder(
      httpTransport, jacksonFactory, credential) 
      .setApplicationName(applicationName) 
      .build(); 

Wie die URL in obigem Code ändern? Wenn ich die drive Instanz Schaffung

drive = new Drive.Builder(
       httpTransport, jacksonFactory, credential) 
       .setApplicationName(applicationName).setRootUrl("http://www.googleapis.com:443/") 
       .build(); 

Dann ändern gibt es den Fehler

ERROR [2016-05-03 18:39:10,847] com.test.intranet.sao.GoogleDocSAO: Connection reset 
! java.net.SocketException: Connection reset 
! at java.net.SocketInputStream.read(SocketInputStream.java:209) ~[na:1.8.0_65] 
! at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_65] 
! at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_65] 
! at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[na:1.8.0_65] 
! at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[na:1.8.0_65] 
! at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704) ~[na:1.8.0_65] 
! at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647) ~[na:1.8.0_65] 
! at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:675) ~[na:1.8.0_65] 
! at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536) ~[na:1.8.0_65] 
! at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) ~[na:1.8.0_65] 
! at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[na:1.8.0_65] 
! at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:37) ~[google-http-client-1.20.0.jar:1.20.0] 
! at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:94) ~[google-http-client-1.20.0.jar:1.20.0] 
! at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:972) ~[google-http-client-1.20.0.jar:1.20.0] 
! at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) ~[google-api-client-1.20.0.jar:1.20.0] 
! at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) ~[google-api-client-1.20.0.jar:1.20.0] 
! at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) ~[google-api-client-1.20.0.jar:1.20.0] 

Antwort

0

Google-Laufwerk kann durch die Anwendung der erforderlichen Verbindungen zu den folgenden Hosts und Ports über einen Proxy-Server arbeiten, wie in Google Drive firewall and proxy setting aufgelistet .

Beachten Sie jedoch, dass Google derzeit keine Authentifizierung für Verbindungen zu seinen Adressen unterstützt. Sie müssen die Authentifizierung für die angegebenen Adressen in der Google Apps-Administrator-Hilfeseite umgehen, damit Google über Ihren Proxy arbeiten kann.

Mögliche Proxy-Server-Konfigurationen sind in How to configure your proxy server to work with Google Drive angegeben.

Verwandte Themen