2016-12-16 20 views
0

私の端末で動作するカールリクエストをhttp gemを使ってルビーコードに変換しようとしています。http ruby​​ gemでapiリクエストを作成できません

これは私が欲しい有効なJSONを私に戻っていますカールの要求である:私は私のRubyスクリプトでこれをやろうhttp gem

curl -X GET --header 'Accept: application/json' --header 'api_key: somekey' --header 'authtoken: sometoken' 'https://cdn.domain.io/v3/content_types/shirts/entries?environment=dev' 

HTTP.headers(:Accept => "application/json", :api_key => 'somekey', :authtoken => 'sometoken').get("https://cdn.domain.io/v3/content_types/shirts/entries", :params => { :environment => 'dev'}).body.readpartial 

をそして、これは私を与えます戻る"api_key":["is not valid."]}サーバーからのエラー

私は間違っていますか?これをどのように機能させるには?

+0

多分 '.headers(受け入れる: "アプリケーション/ JSONを")のように異なる' .header(...) 'コール(それらをチェーン)します。ヘッダ(api_key: 'somekey').... '?私はhttp宝石を知らない。このapporachが動作すれば、恐らくgithubに関するバグレポートに署名する価値があります。 – Felix

+0

あなたが言ったように連鎖しようとしました。 did not work –

+0

WEBrick v1.3.1、http v2.1.0、Rails v4.2.5でエラーは発生しませんでした。たぶん、再現する方法の詳細を投稿してください。 –

答えて

0

Typhoeusはうまく動作しているようだ:

require "typhoeus" 
require 'multi_json' 
require "awesome_print" 

response = Typhoeus::Request.new(
    "https://api.domain.io/v3/content_types/shirts/entries?environment=dev", 
    headers: { api_key: "somekey", access_token: "sometoken", 
    accept_encoding: "gzip" } 
).run 

# puts response.body 
begin 
    ap MultiJson.load(response.body, :symbolize_keys => true) 
rescue MultiJson::ParseError => exception 
    p exception.data # => "{invalid json}" 
    p exception.cause # => JSON::ParserError: 795: unexpected token at '{invalid json}' 
end 
関連する問題