当前位置: 首页 > 知识库问答 >
问题:

Google Translate Api错误414(请求URI太大)java

孙风畔
2023-03-14

在Google Translate Api for Java的官方文档中,它说我们可以使用post-method发送超过2K个字符。https://developers.google.com/translate/v2/using_rest

然而,当我尝试翻译长度超过2k的文本时,我得到错误414(请求URI太大)。

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();
    }
}

更新:我明白了,上面的代码是正确的。最后我意识到这个错误不是来自谷歌翻译服务,而是来自我在谷歌应用引擎上的代理。

共有1个答案

阳兴文
2023-03-14

您链接到的文档所说的是您使用POST方法并将参数放入请求正文......而不是请求URL。

参考:

  • 参数如何在HTTP POST请求中发送?
 类似资料:
  • 我正在将Flask与Apache一起使用。当我发送带有长url(19000个字符)的GET请求时,响应是 我怀疑该请求触发了< code > werkzeug RequestURITooLarge异常或flask 。当我用相似的url长度直接向Apache发送请求时,没有错误。 有没有办法增加Flask处理的最大url长度?

  • 我有一个包含大量参数的GET请求,每当我通过浏览器点击它时,它都可以正常工作,但是每当我尝试通过Postman点击相同的请求时,我都会得到-"414错误-Request URI Too大|nginx"。这是一些奇怪的事情,因为我通过浏览器获取结果。请帮助。

  • 问题内容: 我已经开发了一个PHP网络应用程序。我给用户一个选项,可以一次更新多个问题。这样做时,有时用户会遇到此错误。有什么办法可以增加Apache中URL的长度? 问题答案: 在Apache下,该限制是可配置的值 。如果要支持更长的请求URI,请将此值更改为大于其默认值8190的值。该值在 /etc/apache2/apache2.conf中 。如果不是,请在下添加新行()。 但是,请注意,如

  • 因此,我尝试了Railscasts教程,以及ajax-datatables-rails gem的教程。我正在从数据库创建客户端列表--而不是用户。我相信我已经将其缩小到这样一个事实,即当通过Datatables使用方法时,我收到一个带有“Request-URI太大”的414。当我使用方法时,我只是获得除之外的所有属性的空值,这是有道理的,因为POST json用于创建客户端。任何帮助都非常感谢!

  • 问题内容: 我正在使用ckeditor格式化我的内部一些数据 现在,当我尝试使用这种方式发布数据时, 我得到错误 HTTP错误414。请求URL太长。 我在这里遇到错误:http : //iranfairco.com/example/errorLongUrl.aspx 尝试单击该页面左下方的“ 编辑文本” 按钮。 为什么会这样呢?我该如何解决? 问题答案: 根据这个问题,URL的最大实际长度是20

  • 我的应用程序是一个Java Tomcat WebApp,它使用Dojo js工具包作为我们网页的框架。我的一个表单页面涉及使用 Dojo 的 dojox.layout.ContentPane 将大量字符串数据传递到另一个表单页面。ContentPane传递所有参数并使用GET加载相应的页面,但会导致414 Request-URI太大,因为这超出了Apache的LimitRequestLine。 我