Java Google Translate API:来自此客户端应用程序的请求<;空的>;被封锁

Java Google Translate API:来自此客户端应用程序的请求<;空的>;被封锁,java,android,google-translate,google-translation-api,Java,Android,Google Translate,Google Translation Api,我收到错误403-来自这个Android客户端应用程序的请求被使用付费谷歌云平台翻译API阻止。将限制设置为“无”时效果非常好。 有一些报道类似问题的帖子,但没有人回答 我在一些示例中看到,有一个版本有.setApplicationName(),我认为这可能会有所帮助,但我找不到该版本 使用的代码是:` private void translate(String textToTranslate, String targetLanguage, TranslateCallback callback)

我收到错误403-来自这个Android客户端应用程序的请求被使用付费谷歌云平台翻译API阻止。将限制设置为“无”时效果非常好。 有一些报道类似问题的帖子,但没有人回答

我在一些示例中看到,有一个版本有.setApplicationName(),我认为这可能会有所帮助,但我找不到该版本

使用的代码是:`

private void translate(String textToTranslate, String targetLanguage, TranslateCallback callback) {
    try {
        TranslateOptions options = TranslateOptions.newBuilder()
                        .setApiKey( < api_key >)
                        .build();
        Translate trService = options.getService();
        Translation translation = trService.translate(textToTranslate,TranslateOption.targetLanguage(targetLanguage));
        callback.onSuccess(translation.getTranslatedText());
    }
    catch(Exception e) {
        callback.onFailure();
    }
}`
private void translate(String textToTranslate、String targetLanguage、TranslateCallback回调){
试一试{
TranslateOptions=TranslateOptions.newBuilder()
.setApiKey()
.build();
Translate trService=options.getService();
Translation Translation=trService.translate(textToTranslate,TranslateOption.targetLanguage(targetLanguage));
onSuccess(translation.getTranslatedText());
}
捕获(例外e){
callback.onFailure();
}
}`
发件人:

我终于找到了一种方法

为android应用程序设置API密钥限制时,您指定了包名和SHA-1证书指纹。因此,当您向Google发送请求时,必须在每个请求的标题中添加这些信息

connection.setRequestProperty("X-Android-Package", "com.example.awesomeapp");
String sign = "5D:5A:12:D3:......".toLowerCase(); //Your SHA1 key in lower cased.
connection.setRequestProperty("X-Android-Cert", sig);

可以找到详细的答案。

您修复了吗?没有,我最终使用了web API键、REST和设置refferer,使其看起来像web请求。不是最漂亮的,但总比没有好。这是可能的解决办法之一,但仍然没有翻译API的解决方案。