使用CURL调用Last.fm API报错:错误码6(无效参数)及HTTP 400请求失败
解决curl调用Last.fm API返回"invalid parameters"的问题
问题出在Bash对URL里的&符号的解析上——在Bash中,&是特殊字符,会把它前面的命令放到后台运行,导致你的URL被拆分成多个部分,实际发送给API的参数不完整,这就是为什么返回"invalid parameters"和400 Bad Request错误。而浏览器直接访问时,&只是URL的参数分隔符,不会被特殊处理,所以能正常工作。
解决方法有两种:
- 把整个URL用双引号包裹,让Bash把它当作一个整体处理,不再解析内部的
&:curl "http://ws.audioscrobbler.com/2.0/?method=tag.gettopalbums&tag=disco&api_key=(my API KEY)&format=json" - 对每个
&进行转义,在前面加反斜杠\,告诉Bash这是普通字符:curl http://ws.audioscrobbler.com/2.0/?method=tag.gettopalbums\&tag=disco\&api_key=(my API KEY)\&format=json
修改后重新执行命令,应该就能正常获取Last.fm API的返回数据了。
内容的提问来源于stack exchange,提问作者Odin
相关产品推荐
相关产品推荐

