缺少参数client_id??Ruby RestClient问题

缺少参数client_id??Ruby RestClient问题,ruby,rest-client,Ruby,Rest Client,我使用RestClient与Spotify API一起工作(但我假设这是一个一般性问题,而不是Spotify) API要求传递客户端id。我的代码: authorization=Base64.strict_encode64“#{@clientID}:#{@clientSecret}” 开始 rescue RestClient::BadRequest=>e 放e.回应 结束 但是我得到了一个BadRequest异常,响应状态为“缺少必需的参数:client_id” 如果我做卷发: puts `cu

我使用RestClient与Spotify API一起工作(但我假设这是一个一般性问题,而不是Spotify)

API要求传递客户端id。我的代码: authorization=Base64.strict_encode64“#{@clientID}:#{@clientSecret}” 开始

rescue RestClient::BadRequest=>e 放e.回应 结束

但是我得到了一个BadRequest异常,响应状态为“缺少必需的参数:client_id”

如果我做卷发:

puts `curl -I -s -X GET "#{AUTHORIZE_URI}?client_id=#{@clientID}&response_type=code&redirect_uri=REDIRECT_URI"`

我得到一个正常的,200 OK的回复。这里发生了什么事???

您必须使用
params
内键
headers
散列来传递查询参数。以下文件

由于原始API中的错误选择,参数 填充查询字符串实际上是从headers散列中取出的。 因此,如果要同时传递参数散列和更复杂的选项, 在headers散列中使用特殊键:params。这种设计可以 在未来的主要版本中进行更改


必须使用
params
key-in
headers
hash传递查询参数。以下文件

由于原始API中的错误选择,参数 填充查询字符串实际上是从headers散列中取出的。 因此,如果要同时传递参数散列和更复杂的选项, 在headers散列中使用特殊键:params。这种设计可以 在未来的主要版本中进行更改

puts `curl -I -s -X GET "#{AUTHORIZE_URI}?client_id=#{@clientID}&response_type=code&redirect_uri=REDIRECT_URI"`
RestClient::Request.execute(method: :get, 
                            url: 'http://example.com/resource',
                            timeout: 10, 
                            headers: {params: {foo: 'bar'}}
                           )

 ➔ GET http://example.com/resource?foo=bar