2013-02-20 147 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