2017-01-13 7 views
0

でのJSONのparamsを構築するためにどのように私はhttpartyでPOSTリクエストを送信し、応答 私のJSONのparamsはHttparty

{ 
    "webhook": { 
    "topic": "shop/update", 
    "address": "http://2350d6c0.ngrok.io/shopify_stores/update_shop_info", 
    "format": "json" 
    } 
} 

です取得する必要がありますし、私は使用していますhttpartyのparams

begin 
      response = HTTParty.post("#{url}", 
      { 
      :body => [ 
       { 
        "webhook" => { 
         "topic" => "shop\/update", 
         "address" => "http:\/\/15ec3a12.ngrok.io\/shopify_stores\/update_shop_info", #place your url here 
         "format" => "json" 
        } 
       } 
         ].to_json, 
      :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json'} 
      }) 
      byebug 
     rescue HTTParty::Error 

    end 

としてそれrepsonseは

必須パラメータが不足しているか無効です。

+0

'private'セクションの下で' def something_params'と言う部分がコントローラにありますか?もしそうなら、それをあなたの質問に入れることができますか? –

+0

私はそれらを使用していない、単にサーバーへの投稿要求を送信し、応答を保存する –

答えて

1

スムージーウェスHTTPartyと連携するには、クライアントを手続き的なやり方で使用するのではなく作成することです。

class MyApiClient 
    include HTTParty 
    base_uri 'example.com' 

    format :json 

    # this is just an example of how it is commonly done 
    def initalize(api_key = nil) 
    @api_key = api_key 
    end 

    def post_something(data) 
    self.class.post("/some_path", data) 
    end 
end 

これはあなたが行うようになる。

client = MyApiClient.new() 
puts client.post_something({ foo: "bar" }) 

あなたはヘッダを設定したり、体をコード扱う必要はありません - HTTPartyはあなたのためにそれを処理します。ライブラリの全体のポイントのようなもの - 手続き的にそれを解剖したい場合はstdlibの一部であるNet::HTTPを使用してください。

関連する問題