2016-04-17 189 views
0

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

卷曲https://www.googleapis.com/language/translate/v2?key= &源= EN &目标= DE & Q =你好%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" 
} 
} 

帮助?

回答

2

你必须围绕你的整个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