2016-12-20 8 views
0

자바에서 Google 클라우드 번역 API를 사용하려고합니다. 무료 평가판 버전에 가입하고 Google 클라우드 콘솔에서 API 프로젝트를 번역 할 수 있도록 설정했습니다. 또한 API 키를 가지고 있습니다.Google 클라우드에 API 키를 사용하는 방법 번역 API

나는 API usage reference을 참조하여 google-cloud-translate의 자바 메이븐 프로젝트 포함 종속성을 만들었습니다. 의존성으로 다운로드됩니다. 자바 클래스 파일에서 나는 링크가 주어진 것과 같은 코드를 사용하고 있지만 에러는 나에게 준다.

나는 이 아니며은 어디에서 사용했는지 모르겠으므로 어디서나 API 키를 사용합니다. 그게 문제라고 생각하지만 모르겠다 인증을위한 API 키를 전달하는 방법? 링크 에서 "gcloud beta auth application-default login"단계가 실행되지 않아 명령 행에서 실행되지 않아 작동하지 않습니다.

나는 이클립스에서 java 프로젝트를 사용하고 있으며 "Run As"-> "Java application"을 사용하여 실행 중이다. 저를 도와 일의

Exception in thread "main" com.google.cloud.translate.TranslateException: connect timed out 
    at com.google.cloud.translate.spi.DefaultTranslateRpc.translate(DefaultTranslateRpc.java:63) 
    at com.google.cloud.translate.spi.DefaultTranslateRpc.translate(DefaultTranslateRpc.java:145) 
    at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:113) 
    at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:110) 
    at com.google.cloud.RetryHelper.doRetry(RetryHelper.java:179) 
    at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:244) 
    at com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:110) 
    at com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:124) 
    at com.translate.main.Translator.main(Translator.java:83) 
Caused by: java.net.SocketTimeoutException: connect timed out 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:656) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275) 
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) 
    at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:93) 
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:972) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 
    at com.google.cloud.translate.spi.DefaultTranslateRpc.translate(DefaultTranslateRpc.java:125) 
    ... 7 more 

답변

0

커플 :

다음과 같이 내 API 키 사용
  1. :

    Translate translate = TranslateOptions.newBuilder(). 
    setApiKey((String)PropertyLoader.prop.get("GOOGLE_API_KEY")). 
    build().getService(); 
    
  2. 내가 (바보 나) 기업 프록시 뒤에있는 코드를 실행했다. 내 자바 코드와 빙고 아래 라인 (정적 이니셜 라이저)을 추가했습니다!

    static { 
        System.setProperty("http.proxyHost", HTTP_PROXY_HOST); 
        System.setProperty("http.proxyPort", HTTP_PROXY_PORT); 
        System.setProperty("https.proxyHost", HTTPS_PROXY_HOST); 
        System.setProperty("https.proxyPort", HTTPS_PROXY_PORT); 
    } 
    
HTTP_PROXY_HOST 다른 사람들이 내 회사에 대한 상수를 정의

...