Ошибка Google Translate API 414 (слишком большой URI запроса) java

В официальной документации Google Translate Api для Java говорится, что мы можем использовать пост-метод для отправки более 2К символов. https://developers.google.com/translate/v2/using_rest

Однако, когда я пытаюсь перевести текст длиной более 2 КБ, я получаю сообщение об ошибке 414 (Request-URI Too Large).

StringBuilder sb = new StringBuilder();
HttpURLConnection connection = null;
try {
    URL url = new URL("https://www.googleapis.com/language/translate/v2");
    String urlParameters = "key=" + apiKey + "&source=" + shortLang1 + 
            "&target=" + shortLang2 + "&q=" + URLEncoder.encode(lyrics, "UTF-8");
    connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.setUseCaches (false);
    connection.addRequestProperty("X-HTTP-Method-Override", "GET");
    DataOutputStream wr = new DataOutputStream (connection.getOutputStream ());
    wr.writeBytes (urlParameters);
    wr.flush ();
    wr.close ();
    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
    if (connection.getResponseCode() != 200) {
        return null;
    }
    String line;
    while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
    }
    reader.close();
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if (connection != null) {
        connection.disconnect();
    }
}

ОБНОВЛЕНИЕ: я понял, приведенный выше код правильный. Наконец я понимаю, что я получил эту ошибку не от службы Google Translate, а от моего прокси в Google App Engine.


person user1049280    schedule 23.08.2013    source источник


Ответы (1)


Документ, на который вы ссылаетесь, говорит о том, что вы используете метод POST и, вы помещаете параметры в тело запроса... а не URL-адрес запроса.

Ссылка:

person Stephen C    schedule 23.08.2013
comment
Спасибо за ответ, но, боюсь, я вас не понимаю - я делаю POST с помещением параметров в тело запроса. Как и здесь: javadb.com/ - person user1049280; 26.08.2013