Abhishek2k6
Abhishek2k6

Reputation: 435

JAVA Jersey 2.0 REST Client for Google Translate API

I am trying to access the GOOGLE Translate API using Jersey2.1 RESTClient

    import java.net.URI;
    import javax.ws.rs.client.Client;
    import javax.ws.rs.client.ClientBuilder;
    import javax.ws.rs.client.Invocation;
    import javax.ws.rs.client.WebTarget;
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.Response;
    import javax.ws.rs.core.UriBuilder;
    import org.glassfish.jersey.client.ClientConfig;
    public class Test {
    public static void main(String[] args) {
    ClientConfig config = new ClientConfig();
    Client client = ClientBuilder.newClient(new ClientConfig());
    // https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world


    WebTarget webTarget = client.target("https://www.googleapis.com/");
    WebTarget resourceWebTarget = webTarget.path("language/translate/v2");
    WebTarget helloworldWebTargetWithQueryParam = resourceWebTarget
            .queryParam("key", "XXXXXX-MYKEY-XXXXXXX")
            .queryParam("source", "en").queryParam("target", "de")
            .queryParam("q", "Hello%20world");
    Invocation.Builder invocationBuilder = helloworldWebTargetWithQueryParam
            .request(MediaType.APPLICATION_JSON);
     invocationBuilder.header("referer", "*.TestGoogleTranslate/*");
    Response response = invocationBuilder.get();
    System.out.println(response.getStatus());
    System.out.println(response.readEntity(String.class));
        }
    }

But getting ERROR , looks like i don't have proper authentication, But I have enable the Google Translate API and generated the BrowserKey . Is that correct?

    403
    {
     "error": {
      "errors": [
       {
        "domain": "usageLimits",
        "reason": "dailyLimitExceeded",
        "message": "Daily Limit Exceeded"
       }
      ],
      "code": 403,
      "message": "Daily Limit Exceeded"
     }
    }

Is there some setting I m missing.

Upvotes: 0

Views: 480

Answers (1)

melkysalem
melkysalem

Reputation: 111

Please, try this and post feedback.

    import java.net.URI;
    import javax.ws.rs.client.Client;
    import javax.ws.rs.client.ClientBuilder;
    import javax.ws.rs.client.Invocation;
    import javax.ws.rs.client.WebTarget;
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.Response;
    import javax.ws.rs.core.UriBuilder;
    import org.glassfish.jersey.client.ClientConfig;
    public class Test {
    public static void main(String[] args) {
    ClientConfig config = new ClientConfig();
    Client client = ClientBuilder.newClient(new ClientConfig());
    // https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world


    WebTarget webTarget = client.target("https://www.googleapis.com/");
    WebTarget resourceWebTarget = webTarget.path("language/translate/v2");
    WebTarget helloworldWebTargetWithQueryParam = resourceWebTarget
            .queryParam("key", "XXXXXX-MYKEY-XXXXXXX")
            .queryParam("source", "en").queryParam("target", "de")
            .queryParam("q", "Hello%20world")
            .queryParam("'trace", "token:ACwti_dTHqWLzEnynUG9w9koj34mCZxBGxcCLuz_Woel68T9Ef5Syw1bzsjWMLbO8Lv0l6UNQ5q0z7RDZd3xn3WHDtlgolGoqg"); // line changed
    Invocation.Builder invocationBuilder = helloworldWebTargetWithQueryParam
            .request(MediaType.APPLICATION_JSON);
    invocationBuilder.header("referer", "*.TestGoogleTranslate/*");
    Response response = invocationBuilder.get();
    System.out.println(response.getStatus());
    System.out.println(response.readEntity(String.class));
    }
}

Upvotes: 1

Related Questions