【问题标题】:google cloud translate Java lib hang-upgoogle云翻译Java lib挂机
【发布时间】:2018-11-02 17:09:47
【问题描述】:
  1. 我已经配置了 gcloud 点击这个链接https://cloud.google.com/sdk/docs/quickstart-windows
  2. 我有认证帐户 image

  3. 当我调用翻译 API 或语音 API 时,它会挂断很长时间并显示错误消息

    线程“main”com.google.cloud.translate.TranslateException 中的异常:获取服务帐户的访问令牌时出错: 在 com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:61) 在 com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:144) 在 com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:113) 在 com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:110) 在 com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:89) 在 com.google.cloud.RetryHelper.run(RetryHelper.java:74) 在 com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:51) 在 com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:110) 在 com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:124) 在 org.org.fp.audio.recognition.core.TranslateTest.main(TranslateTest.java:16)

  4. 代码如下:

    public static void main(String... args) throws Exception {
    // Instantiates a client
    Translate translate = TranslateOptions.getDefaultInstance().getService();
    // The text to translate
    String text = "Hello, world!";
    // Translates some text into Russian
    Translation translation =
        translate.translate(
            text,
            TranslateOption.sourceLanguage("en"),
            TranslateOption.targetLanguage("ru"));
    System.out.printf("Text: %s%n", text);
    System.out.printf("Translation: %s%n", translation.getTranslatedText());
    

    }

问题是关于帐户信息还是网络?

【问题讨论】:

    标签: api gcloud translate


    【解决方案1】:

    这很可能是授权问题:

    使用 Google Cloud 客户端库时,您需要下载服务帐号的 JSON 文件并将 GOOGLE_APPLICATION_CREDENTIALS 设置为存储 JSON 文件的路径。翻译 API 可以参考this link。 Speech API 的流程相同。

    【讨论】:

    • 目前我只有'get java.net.SocketTimeoutException: connect timed out',如何检查我的网络,我现在可以访问google.com。
    • 此错误似乎与原始错误无关,您可能应该发布一个新问题,包括整个堆栈跟踪。无论如何,翻译 API 端点是 https://translation.googleapis.com,您可能需要确保您可以访问它。如果您使用代理,则需要将代理属性添加到代码中。
    • 是的,我可以访问这个链接,但是如何在 java 代码中使用 socks5 代理?
    • 在我添加代理后它工作了:谢谢 ch_mike。 System.setProperty("https.proxyHost", "127.0.0.1"); System.setProperty("https.proxyPort", "1080");
    【解决方案2】:

    添加代理后就可以了:

    System.setProperty("https.proxyHost", "127.0.0.1"); System.setProperty("https.proxyPort", "1080");

    谢谢你 ch_mike。

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 1970-01-01
      • 2018-07-26
      • 2021-08-11
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      相关资源
      最近更新 更多