2013-02-20 140 views
0

我正在使用.NET库http://code.google.com/p/google-api-dotnet-client/wiki/APIs#Translate_API翻译文本,但我无法翻译大文本,只是一小部分。Google翻译如何翻译大文本((414)请求 - URI太大)与.NET库

我收到错误(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; 
     } 

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

+4

如果请求URI太大,则表示执行了GET请求。 POST请求将传输文本以在消息负载中进行翻译,而不是在请求URI中进行翻译。检查您是否可以用某种方式配置您使用的库,而不是使用POST。 – dtb 2013-02-20 22:05:08

回答

1

documentation此项目说,

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

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

+0

我知道这一点,但我不知道该怎么做。我正在使用Google http://wsdl.mirodre.sk/Google.Apis.Translate.v2.cs提供的这个类。 不幸的是,我不知道如何修改它。 – mirodre 2013-02-21 17:18:01