Ich versuche, einen POST-Aufruf an Google Translate mit Jersey 1.5 zu schreiben. Dies ist mein Code:
package main;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import javax.ws.rs.core.MultivaluedMap;
public class Main {
private static String GOOGLE_TRANSLATE_URL = "https://www.googleapis.com/language/translate/v2";
private static String translateString(String sourceString, String sourceLanguage, String targetLanguage) {
String response;
Client c = Client.create();
WebResource wr = c.resource(GOOGLE_TRANSLATE_URL);
MultivaluedMap<String, String> params = new MultivaluedMapImpl();
params.add("q", sourceString);
params.add("source", sourceLanguage);
params.add("target", targetLanguage);
params.add("key", "xxxx");
wr.header("X-HTTP-Method-Override", "GET");
response = wr.post(String.class, params);
return response;
}
public static void main(String[] args) {
System.out.println(translateString("Hello", "en", "sv"));
}
}
Wenn ich dies ausführe, erhalte ich nur die folgende Meldung: com.sun.jersey.api.client.UniformInterfaceException: POST [https://www.googleapis.com/language/translate/v2](https://www.googleapis.com/language/translate/v2) returned a response status of 404
.
Ich habe es geschafft, dies mit einem einfachen cURL-Befehl wie folgt zu erreichen:
curl --header "X-HTTP-Method-Override: GET" -d key=xxxx -d q=Hello -d source=en -d target=sv [https://www.googleapis.com/language/translate/v2](https://www.googleapis.com/language/translate/v2)
Vielen Dank im Voraus!