Reputation: 435
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
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