You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AzureCognitive R包调用翻译服务返回HTTP 400错误如何解决

问题原因排查

这属于操作参数配置错误,不是R包bug,两处调用分别存在以下问题:

  • 第一处调用的问题:
    你直接传入了手动拼接的JSON字符串,首先JSON规范要求字符串必须用双引号包裹,你用的单引号本身就不符合JSON格式;其次call_cognitive_endpoint默认会自动将传入的body参数序列化为JSON,你直接传字符串的话,包会把整个字符串作为JSON值处理,最终发出的请求体结构完全不符合接口要求。
  • 第二处调用的问题:
    Azure 翻译服务 v3 版本的请求体要求是对象数组格式,每个数组元素是包含Text字段(注意首字母必须大写)的对象,你传的单层列表list(text = "Hello, what is your name")既没有套数组结构,字段名也用了小写,不符合接口规范。

正确调用示例

call_cognitive_endpoint(endpoint = endp,
                        operation = "translate",
                        options = list('api-version' = "3.0",
                                       'from' = 'en',
                                       'to' = 'dk'),
                        # 注意外层多套一层list对应数组,字段名Text首字母大写
                        body = list(list(Text = "Hello, what is your name?")),
                        http_verb = "POST")

如果确实需要手动传入已经拼接好的JSON字符串,需要额外加encode = "raw"参数,同时要保证JSON本身格式合法(所有引号用双引号):

call_cognitive_endpoint(endpoint = endp,
                        operation = "translate",
                        options = list('api-version' = "3.0",
                                       'from' = 'en',
                                       'to' = 'dk'),
                        body = '[{"Text":"Hello, what is your name?"}]',
                        encode = "raw",
                        http_verb = "POST")

内容的提问来源于stack exchange,提问作者KERO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:24:01