我正在构建一个对API使用cURL命令的脚本。我发送格式为application/json
请求的cURL命令并获取结果,我将其解析为Ruby哈希。
当我使用cURL POST命令,获得格式正确的JSON响应时,这非常有用。但是,在使用cURL GET命令时,我返回了一个包含标题的JSON文档:
puts r:
HTTP/1.1 200 OK
X-Compute-Request-Id: req-7e625990-068b-47d1-8c42-9d3dd3b27050
Content-Type: application/json
Content-Length: 1209
Date: Wed, 16 Jan 2013 20:47:41 GMT
{ <JSON DATA> }
当我尝试执行JSON.parse(r)
时,我在“HTTP / 1.1”处收到意外的令牌错误。
我的方法:
def list_flavors
r = %x(curl -s -k -D - -H \"X-Auth-Token: #{$token}\" -X 'GET' http://10.30.1.49:8774/v2/27e60c130c7748f48b0e3e9175702c30/flavors -H 'Content-type: application/json')
response = JSON.parse(r)
response
end
有没有办法使用正则表达式将主体拉出JSON文档然后解析?
或者在从cURL获得回复时我是否采取了错误的方法?