问题:Microsoft Translate 对长文本翻译请求返回 HTTP 414
问题:有没有办法解决这个问题来限制错误?
背景
我正在尝试通过此 API http://docs.microsofttranslator.com/text-translate.html#!/default/get_Translate 在新的 Azure 云中通过 Microsoft Translate Text API 一次翻译多个文本段落。该 API 似乎仅支持通过 http GET
和查询参数 ?text=
发送文本。通常,我希望能够通过 POST 正文来完成此操作,但 API 似乎只支持 GET。有一个 TranslateArray
POST,但它仍然根据测试/swagger 通过查询参数获取 texts
。
API 文档指定了 10,000 个字符的限制,但我经常收到小于该大小的 HTTP 414 Request-URI Too Long
错误响应,我假设是由于 URL 很长,其中还包括JWT token 。
我正在寻找解决此问题的方法,以降低 Microsoft Translate 的错误率。
我考虑过将文本分割成多个 block ,但如果没有良好的母语分词器,我认为我可能会面临破坏上下文/含义并扭曲翻译的风险。
最佳答案
翻译 API 支持 POST,其中文本(或多个文本)位于正文中。请参阅Example for TranslateArray
例子是:
<TranslateArrayRequest>
<AppId />
<From>language-code</From>
<Options>
<Category xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >string-value</Category>
<ContentType xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2">text/plain</ContentType>
<ReservedFlags xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" />
<State xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >int-value</State>
<Uri xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >string-value</Uri>
<User xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >string-value</User>
</Options>
<Texts>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">string-value</string>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">string-value</string>
</Texts>
<To>language-code</To>
</TranslateArrayRequest>
关于Azure Microsoft 翻译文本,长输入导致 HTTP 414,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090615/