Azure Translate API返回400000错误提示请求输入无效,如何排查解决?
Azure Translate API 400000错误排查与解决方案
错误含义说明
该错误码400000属于请求参数不合法类错误,由接口校验到请求输入项不符合规范直接触发。
排查思路
基础参数校验
- 检查
api-version参数是否匹配服务支持的版本,当前官方通用稳定版本为3.0,错误的版本号会直接触发该报错 - 检查区域(Region)参数是否和创建Azure翻译服务时选择的区域完全一致,注意区域缩写的大小写、拼写问题,比如
chinaeast2不能写成ChinaEast2或者chinaeast - 检查订阅密钥(Ocp-Apim-Subscription-Key)是否正确,是否复制时混入空格、换行符,同时确认密钥是否属于当前使用的翻译服务实例
- 检查
请求体参数校验
- 检查翻译目标语言参数
to是否符合Azure支持的语言代码规范,比如简体中文是zh-Hans、繁体中文是zh-Hant,不能直接写zh - 检查请求体是否为合法JSON格式,比如数组括号是否闭合、字符串是否用双引号包裹、末尾有没有多余逗号
- 检查待翻译文本是否放在
text字段的数组结构里,正确格式示例为:[{"text":"需要翻译的内容"}],单条文本长度不能超过50000字符
- 检查翻译目标语言参数
头部参数校验
- 如果你使用了自定义翻译模型,检查
category参数的模型ID是否正确,没有自定义模型的情况下不要携带该参数 - 检查
Content-Type是否设置为application/json; charset=UTF-8,错误的媒体类型会导致请求体解析失败
- 如果你使用了自定义翻译模型,检查
快速验证方案
你可以用以下curl命令替换你的密钥、区域参数测试接口是否正常,排除代码层面的问题:
curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=en" \ -H "Ocp-Apim-Subscription-Key: 你的密钥" \ -H "Ocp-Apim-Subscription-Region: 你的服务区域" \ -H "Content-Type: application/json" \ -d "[{'text':'你好世界'}]"
如果命令执行后返回正常翻译结果,说明你的代码参数构造存在问题,可对照上述校验项逐一排查。
内容的提问来源于stack exchange,提问作者user3392296
相关产品推荐
相关产品推荐

