Google API Http Referer错误

时间:2014-12-22 19:09:44

标签: java google-translate

到目前为止,我使用的是来自here的Google Translate API示例: -

  • 下载并将google-api-translate-java-0.97.jar添加到我的classpath
  • 在console.developers.google.com中创建了一个项目,并将Tranlate API激活为 以及生成API密钥
  • My Dev environemnt = Eclipse 3.4,Java 1.7,Apache Tomcat 7.0.55,RichFaces 3.3

我的代码段如下: -

import com.google.api.GoogleAPIException;
import com.google.api.translate.Language;
import com.google.api.translate.Translate;
import com.google.api.GoogleAPI;

public class TranslateCheck {

public static void main(String[] args) {

GoogleAPI.setHttpReferrer("http://code.google.com/p/google-api-translate-java/");
GoogleAPI.setKey("my api key here");

String translatedText="";
try {
  translatedText = Translate.DEFAULT.execute("Anger", Language.ENGLISH,Language.URDU);
   } catch (GoogleAPIException e) {
   e.printStackTrace();
   }
System.out.println(translatedText);

 }
 }

我得到的错误是: -

 Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL:   
 https://www.googleapis.com/language/translate/v2?
 key=AIsdfabCSW_HEREplZ7vfUwaC34YmVT_F1m9Ps&q=Anger&target=ur&source=en
  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at com.google.api.GoogleAPI.retrieveJSON(GoogleAPI.java:89)
    ... 2 more

我知道这似乎是question的副本。但我的问题是,它如何准确知道setHTTPheader的CORRECT URL。我尝试使用以下

 https://console.developers.google.com/

但无济于事。提前谢谢。

1 个答案:

答案 0 :(得分:1)

在开发人员控制台中创建API密钥时。有几个选项可用于创建密钥(浏览器密钥,服务器密钥,IOS密钥等)。假设您选择了名为Server key的Key,那么您必须提供您希望允许使用API​​的机器的IP地址,如果您没有提供任何IP,那么所有公共IP地址都可以使用它。类似于浏览器和IOS密钥。浏览文档[1]以了解封顶使用情况。

[1] https://developers.google.com/console/help/new/?hl=en_US#cappingusage