【问题标题】:Google Translate API How to translate big text ((414) Request-URI Too Large) with .NET libraryGoogle Translate API 如何使用 .NET 库翻译大文本((414) Request-URI Too Large)
【发布时间】:2013-02-20 22:00:31
【问题描述】:

我正在使用 .NET 库 http://code.google.com/p/google-api-dotnet-client/wiki/APIs#Translate_API 翻译文本,但我无法翻译大文本,只能翻译小文本。

我收到错误 (414) 请求 URI 太大。应该有一些方法可以做到这一点。

我有这个代码

        var service = new TranslateService();
        service.Key = this.ApiKey;

        var request = service.Translations.List(textToTranslate, this.LngDestination);
        request.Source = this.LngSource;

        TranslationsListResponse response = request.Fetch();

        foreach (TranslationsResource translation in response.Translations)
        {
            return translation.TranslatedText;
        }

有人知道如何解决这个问题吗?

【问题讨论】:

  • 如果请求 URI 太大,则表明执行了 GET 请求。 POST 请求将在消息负载中传输要翻译的文本,而不是在请求 URI 中。检查您是否可以以某种方式配置您正在使用的库,它使用 POST 而不是 GET。

标签: c# .net google-translate


【解决方案1】:

这个项目的documentation 说,

注意:如果您想在单个请求中发送更多数据,也可以使用 POST 调用 API。 POST 正文中的 q 参数必须少于 5K 个字符。要使用 POST,您必须使用 X-HTTP-Method-Override 标头告诉 Translate API 将请求视为 GET(使用 X-HTTP-Method-Override: GET)。

如果您需要帮助切换到 POST,请包含来自您的 TranslateService() 对象的相关代码。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 2017-05-31
  • 2015-07-25
  • 1970-01-01
相关资源
最近更新 更多