2014-02-06 47 views
0

curl命令行這是我的curl命令其在命令行工作得很好:轉換Rails中

curl --data @order_new.json \ 
    -H "X-Augury-Token:My_token_goes_here" \ 
    -H "Content-Type:application/json" \ 
    http://staging.hub.spreecommerce.com/api/stores/store_id_goes_here/messages 

我需要使用任何類型的寶石,具有HTTParty/rest_client/spree-試圖執行相同的軌道API客戶端,但蹊蹺的位置:

require 'httparty' 

result = HTTParty.post(
     "http://staging.hub.spreecommerce.com/api/stores/52eb347f755b1c97e900001e/messages", 
     :body => JSON.parse(File.read("order_new.json")), 
     :header => { 
      "X-Augury-Token" => "UjjKsdxbrwjpAPx9Hiw4", 
      "Content-Type" => "application/json" 
     } 
) 

但我得到的錯誤,

"The page you were looking for doesn't exist (404)" 

我需要RAI ls相當於上面的curl命令,使用spree-api-client gem會很有幫助。

+2

捲曲是做一個GET請求和HTTP方POST請求不要解析JSON。 – andHapp

+0

我懷疑它@andHapp,curl命令沿'--data'參數發送,所以它應該是一個POST請求,而不是GET請求。 –

+0

哦,對了。 – andHapp

回答

0

如果您喜歡使用Spree::API::Client,您可以發佈您的發現結果嗎?你能評估以下命令的輸出和後背部:

client = Spree::API::Client.new('http://staging.hub.spreecommerce.com/api/', 'UjjKsdxbrwjpAPx9Hiw4') 
client.products.inspect 
+0

我已經在github鏈接中看到過這樣的內容,但是我怎樣才能像curl那樣傳遞-header,-data屬性。 – Ajay

+0

你不應該需要。這個寶石不是curl命令的替代品,它可以用來與spree進行通信。如果你想創建一個訂單,你應該可以通過'client.create_order(data)'做到這一點。查看代碼以瞭解正在發生的事情:https://github.com/andrew/spree-api-client/blob/master/lib/spree-api-client.rb,https://github.com/ andrew/spree-api-client/blob/master/lib/spree-api-client/connection.rb和https://github.com/andrew/spree-api-client/blob/master/lib/spree-api- client/orders.rb –

+0

是的,我明白了,使用client.create_order(data),我們可以在我們的store front(spree)中創建一個create_order,但是它並沒有明確地傳遞任何消息給hub。 但根據我的問題,我需要將類似的通知消息傳遞到我的中心(staging.hub.spreecommerce.com/)! :) – Ajay

0
require 'httparty' 

result = HTTParty.post(
     "http://staging.hub.spreecommerce.com/api/stores/52eb347f755b1c97e900001e/messages", 
     :body => @order.to_json, 
     :header => { 
      "X-Augury-Token" => "UjjKsdxbrwjpAPx9Hiw4", 
      "Content-Type" => "application/json" 
     } 
) 

同時傳遞到HTTParty身體

+0

GOT錯誤:NoMethodError:undefined方法'json'爲零:NilClass 讓我們忘記添加.json文件作爲輸入,我們可以傳遞一個對象在:body部分?就像:body => Order.last? – Ajay

+0

你必須在體內傳遞json,所以在\ @order中加載順序並寫入\ @ order.to_json –