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

新手使用Google Cloud Shell调用Cloud Vision API遇400错误求助

解决Google Cloud Vision API调用的400 INVALID_ARGUMENT错误

1. 修正curl命令的参数错误

你的curl命令同时使用了--data-binary和-d参数,二者冲突且写法错误,导致-d被当成JSON payload的一部分传入,触发API解析失败。正确命令需移除-d,直接用--data-binary指定请求体文件:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "x-goog-user-project: cogent-anvil-417312" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data-binary @request.json \
  "https://vision.googleapis.com/v1/images:annotate"

2. 修正request.json的内容错误

当前request.json中image.content字段填写的是文件路径,不符合API要求——该字段需要图片的base64编码字符串,而非路径。提供两种正确写法:

方式一:直接嵌入base64编码字符串

在Cloud Shell中执行以下命令,自动生成包含正确base64内容的request.json:

cat > request.json << EOF
{
  "requests": [
    {
      "image": {
        "content": "$(base64 IMG_2058_1024x768.jpeg -w 0)"
      },
      "features": [
        {
          "type": "OBJECT_LOCALIZATION",
          "maxResults": 1
        }
      ]
    }
  ]
}
EOF

方式二:使用Google Cloud Storage地址(适合大图片)

若图片已上传至GCS,替换为gcsImageUri字段:

{
  "requests": [
    {
      "image": {
        "gcsImageUri": "gs://你的存储桶名称/IMG_2058_1024x768.jpeg"
      },
      "features": [
        {
          "type": "OBJECT_LOCALIZATION",
          "maxResults": 1
        }
      ]
    }
  ]
}

注意:需确保服务账号拥有该GCS对象的访问权限

另外注意:你request.json中写的文件名IMG_5028_1064x768_Base64.jpeg与实际生成的IMG_2058_1024x768_Base64.jpeg不匹配,需统一文件名避免路径错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:58:22