Azure Microsoft翻译文本,HTTP 414中的长输入结果

Azure Microsoft翻译文本,HTTP 414中的长输入结果,azure,translate,microsoft-translator,Azure,Translate,Microsoft Translator,问题:Microsoft Translate在长文本翻译请求时返回HTTP 414 问题:有没有办法限制错误 背景 我试图通过Microsoft translate text API在新的Azure云中通过此API一次翻译多段文本。API似乎只支持通过httpGET和查询参数?text=发送文本。通常,我希望能够通过一篇文章的主体来实现这一点,但是API似乎只支持GET。有一个TranslateArrayPOST,但根据测试/招摇,它仍然通过查询参数获取text API文档指定了10000个字符

问题:Microsoft Translate在长文本翻译请求时返回HTTP 414

问题:有没有办法限制错误

背景

我试图通过Microsoft translate text API在新的Azure云中通过此API一次翻译多段文本。API似乎只支持通过http
GET
和查询参数
?text=
发送文本。通常,我希望能够通过一篇文章的主体来实现这一点,但是API似乎只支持GET。有一个
TranslateArray
POST,但根据测试/招摇,它仍然通过查询参数获取
text

API文档指定了10000个字符的限制,但我经常得到
HTTP 414请求URI太长
错误响应,其大小小于此值,我假设是由于长URL,其中还包括JWT令牌

我正在寻找一种方法来解决这个问题,以减少我的错误率,微软翻译


我曾考虑过将文本分割成多个块,但如果没有一个好的本族语标记器,我想我可能会破坏上下文/含义并扭曲翻译

Translator API支持文本(或多个文本)位于正文中的POST。见

例如:

<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>

语言代码
字符串值
文本/纯文本
整数值
字符串值
字符串值
字符串值
字符串值
语言代码

Translator API支持文本在正文中的POST。见

例如:

<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>

语言代码
字符串值
文本/纯文本
整数值
字符串值
字符串值
字符串值
字符串值
语言代码

URL的最大长度通常为2000个字符左右,不能超过10000个字符。是的,我知道很多浏览器都有限制,但这是通过代码实现的,我已经读过一些更高的限制,比如Apache中的8192。我不确定Microsoft是如何实现他们的服务器的,但查询参数在他们的文档中包含以下“文本”的内容,如果无法在正文中发送文本,这将导致我的困惑。“必需。表示要翻译的文本的字符串。文本大小不得超过一万个字符。”URL的最大长度通常为2000个字符左右,所以不能超过10000个。是的,我知道很多浏览器都有限制,但这是通过代码实现的,我读过一些更高的限制,比如Apache中的8192。我不确定Microsoft是如何实现他们的服务器的,但查询参数在他们的文档中包含以下“文本”的内容,如果无法在正文中发送文本,这将导致我的困惑。“必需。表示要翻译的文本的字符串。文本大小不得超过一万个字符。”