2014-02-22 25 views
2

我,如果我在同一時間在終端輸入它一個線,運行正常下面的代碼:如何在Ruby中編寫CURL PUT腳本?

curl -X PUT \ 
> -H "X-Parse-Application-Id: APPID" \ 
> -H "X-Parse-REST-API-Key: APIKEY" \ 
> -H "Content-Type: application/json" \ 
> -d '{"production":true}' \ 
> https://api.parse.com/1/classes/FIELD/OBJECTID 

我怎麼會變成一個Ruby腳本?

我試過使用httparty,uri,net/http,但是curl的語法(\和s的事實,它是一個PUT請求)令我感到困惑。

+0

你爲什麼不嘗試使用[路沿石(https://github.com/taf2/curb),這是Ruby包裝的捲曲? –

+0

那麼,你可以把它包裝在'system()' –

回答

2

Curb是cURL包裝。下面是一些未經測試的代碼:

require 'curb' 

# curl -X PUT \ 
# > -H "X-Parse-Application-Id: APPID" \ 
# > -H "X-Parse-REST-API-Key: APIKEY" \ 
# > -H "Content-Type: application/json" \ 
# > -d '{"production":true}' \ 
# > https://api.parse.com/1/classes/FIELD/OBJECTID 

http = Curl.put("https://api.parse.com/1/classes/FIELD/OBJECTID") do |http| 
    http.headers['X-Parse-Application-Id'] = 'APPID' 
    http.headers['X-Parse-REST-API-Key'] = 'APIKEY' 
    http.headers['Content-Type'] = 'application/json' 
    http.data = '{"production":true}' 
end 
puts http.body_str 
+0

謝謝!只需將http.data轉換爲JSON,並將其設置爲放置請求中的第二個參數,並且效果很好。 –