1
0
Fork 0
mirror of https://github.com/jnunemaker/httparty synced 2023-03-27 23:23:07 -04:00
🎉 Makes http fun again!
Find a file
2013-01-02 13:39:53 -05:00
bin Add ssl_version option to choose SSL version to use. 2012-08-20 21:35:39 +08:00
examples Added documentation via example of how to send custom user agents 2011-12-22 20:11:04 -05:00
features Ruby 1.9 instance_eval doesn't like lambdas, use a proc instead 2012-04-12 12:46:18 -04:00
lib Add support for passing in ciphers information into the ConnectionAdapter, and have this work as expected with the Net:HTTP ConnectionAdapter. 2013-01-02 13:39:53 -05:00
spec Add support for passing in ciphers information into the ConnectionAdapter, and have this work as expected with the Net:HTTP ConnectionAdapter. 2013-01-02 13:39:53 -05:00
website Updated website to point to github issues instead of lighthouse. 2009-08-22 10:25:14 -04:00
.gitignore Added rvmrc to the gitignore 2012-04-16 09:16:51 -05:00
.travis.yml Drop support for 1.9.2. 2012-09-07 14:03:00 -04:00
cucumber.yml Progress format for cucumber. 2012-04-16 00:21:27 -04:00
Gemfile Require newer multi json for tests. 2012-04-21 17:54:05 -04:00
Guardfile Add guard. 2012-04-15 22:21:03 -04:00
History Update history for 0.9 2012-09-07 14:00:57 -04:00
httparty.gemspec Update homepage in gemspec. 2012-04-22 15:47:49 -04:00
MIT-LICENSE Removing .txt from files (it has always annoyed me). Boo Windows! 2008-12-05 17:11:58 -05:00
Rakefile Switch to bundler for release management and use hand made gemspec. 2011-04-16 14:43:20 -04:00
README.md Update README.md 2012-07-25 18:44:07 +03:00

httparty

Makes http fun again!

Install

gem install httparty

Requirements

  • multi_json and multi_xml
  • You like to party!

Examples

# Use the class methods to get down to business quickly
response = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
puts response.body, response.code, response.message, response.headers.inspect

response.each do |item|
  puts item['user']['screen_name']
end

# Or wrap things up in your own class
class Twitter
  include HTTParty
  base_uri 'twitter.com'

  def initialize(u, p)
    @auth = {:username => u, :password => p}
  end

  # which can be :friends, :user or :public
  # options[:query] can be things like since, since_id, count, etc.
  def timeline(which=:friends, options={})
    options.merge!({:basic_auth => @auth})
    self.class.get("/statuses/#{which}_timeline.json", options)
  end

  def post(text)
    options = { :body => {:status => text}, :basic_auth => @auth }
    self.class.post('/statuses/update.json', options)
  end
end

twitter = Twitter.new(config['email'], config['password'])
pp twitter.timeline

See the examples directory for even more goodies.

Command Line Interface

httparty also includes the executable httparty which can be used to query web services and examine the resulting output. By default it will output the response as a pretty-printed Ruby object (useful for grokking the structure of output). This can also be overridden to output formatted XML or JSON. Execute httparty --help for all the options. Below is an example of how easy it is.

httparty "http://twitter.com/statuses/public_timeline.json"

Help and Docs

Contributing

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.