2016-11-29 11 views
0

これは私が実行したいカールリクエストです:コマンドラインからこのcurlコマンドを実行するruby​​ファラデー宝石を使って次のカールリクエストを実行するには?

curl --request GET --url 'https://us8.api.mailchimp.com/3.0/' --user 'anystring:<apikey>'

、私は私が望むものであるJSONの束を得ます。

私はファラデーを使用してこの同じ要求を実行しようとしています。

conn = Faraday.new "https://us8.api.mailchimp.com/3.0/" do |faraday| 
    faraday.adapter Faraday.default_adapter 
end 
conn.basic_auth('apikey', <apikey>) 

response = conn.get 

puts response.body # => "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>301 Moved Permanently</title>\n</head>... 

私はresponse.bodyに見ているのhtmlの代わりにJSONを取得するにはどうすればよい:これは私が試した何ですか?

答えて

2

これは私のために働くことになった:

conn = Faraday.new('https://us8.api.mailchimp.com/3.0/') do |c| 
    c.use FaradayMiddleware::ParseJson, content_type: "application/json" 
    c.use Faraday::Adapter::NetHttp 
end 

conn.basic_auth('apikey', <api_key>) 

response = conn.get('campaigns') 

puts response # => json blob 
0

これは、ルビーの宝石を使用して、カール操作のfardayコードです。

def contacts 
    response = JSON.parse(params) 

    @conn = Faraday.new('https://domain.example.com/api/v2/') do |farday| 
     farday.use FaradayMiddleware::ParseJson, content_type: "application/json" 
     farday.use Faraday::Adapter::NetHttp 
    end 
    @conn.basic_auth('apikey', <your_api_key>) 
    response = @conn.get('contacts') 
    puts response 
    render :json => {"success" => true} 

    end 
関連する問題