通过 curl 测试 google 翻译 API

testing google translate API via curl

我正在通过 curl 测试 Google Translate API,它一直在询问参数 q,而它已经存在于 URL (q=Hello%20World) 中。为什么 Google 翻译 API 返回此错误?

curl https://www.googleapis.com/language/translate/v2?key=&source=en&target=de&q=Hello%20World

[1] 16848
[2] 16849
[3] 16850
[2]-  Done                    source=en
[3]+  Done                    target=de
foo:~ foo$ {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: q",
    "locationType": "parameter",
    "location": "q"
   },
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: target",
    "locationType": "parameter",
    "location": "target"
   }
  ],
  "code": 400,
  "message": "Required parameter: q"
 }
}

帮忙?

您必须用双引号将整个 URL 括起来,例如:

curl "https://www.googleapis.com/language/translate/v2?key=&source=en&target=de&q=Hello%20World"

否则,您的 shell 将在实际执行 curl 之前解释那些 & 个字符;这就是为什么您在开头看到所有这些行的原因:

[1] 16848
[2] 16849
[3] 16850
[2]-  Done                    source=en
[3]+  Done                    target=de