2014-10-04 33 views
0

我對ruby完全陌生。我有以下代碼:Ruby基本語法和Net :: HTTP

body = "hello" 
    site = "api.mysite.net" 
    port = 80 
    conn = Net::HTTP.new(site, port) 
    resp, data = conn.post("/v1/profile", body, {}) 
    puts body 

我的問題是:

  1. 我應該去哪裏了圖書館如何NET :: HTTP.new(),conn.post()等等......作品?
  2. resp和data之間的逗號是什麼意思?
  3. 爲什麼puts body給我什麼,即使我已經招呼最初定義?當通過post()時,我認爲它會分配一個值?而是puts resp.body實際上給了我http響應。

這對我來說都是如此新鮮,只是試圖處理事情。

回答

2
  1. 閱讀docs我猜,但你需要在HTTP真正瞭解它的背景知識。

  2. 這簡寫同時分配兩個變量,假定右手側返回2(或更多)項的數組。

  3. 您已經張貼身在您的要求,resp.body是在響應體內。我不知道爲什麼身體應該是空的。我會仔細檢查一下,但這聽起來像是conn.post的一個副作用,如果有的話。

BTW有幾個很好的第三方的寶石,這使得HTTP客戶端的開發不是處理Net::HTTP容易得多,例如RESTClient,Excon,HTTparty。 Check these out。或者,如果您想使用標準的Ruby庫,請將Open URI視爲更高級別的API。