我正在構建一個使用cURL命令對API的腳本。我發送格式爲application/json
請求的cURL命令並獲得結果,我將其解析爲一個Ruby哈希。Ruby JSON.parse錯誤
當我使用cURL POST命令,獲得格式正確的JSON響應時,這很好用。然而,當使用捲曲GET命令我返回頭有一個JSON文件:「HTTP/1.1」
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)
我得到一個意外的標記錯誤的。
我對這個方法:
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獲得響應時,會以錯誤的方式解決這個問題?
如果你不想要標題,你爲什麼要傳遞-D選項?無論如何,使用net/http將會更好(或者其中一個例如restclient的包裝) –
嘿弗雷德裏克 - 感謝你! – Mike
爲什麼不使用[Curb](https://github.com/taf2/curb)gem?這使得處理cURL變得更容易和習慣。 –